Django/ajax как вывести новые данные на текущей странице без рефреша страницы?

Всем привет.

Делаю функцию:

Человек кликает на кнопку (ссылку), число лайков увеличивается на единичку. Сейчас сделал данную функцию через Ajax, но проблема в том, что число лайков увеличивается, но это можно увидеть лишь после обновления страницы. Как сделать, чтобы обнова шла моментально?

Кнопка/ссылка:

<a id="upvideolike" class="article_social_thumb" href="">{{ videoitem.get_plus }}</a> #get_plus - число лайков.


Js-код:

<script type="text/javascript">

    $('#upvideolike').click(function(e){
        e.preventDefault();

        $.ajax({
            url: '{% url "upvideolike" videoitem.id %}',
            data:{

            },
            sucess:function(){

            }
        })
    });

</script>


Вьюшка добавления плюса:

def upvideolike(request, add_id):

    if request.user.is_authenticated():
        video_item = Video.objects.get(id = add_id)
        user_tags = User.objects.filter(users_video_main = add_id)
        current_user = request.user
        if current_user not in user_tags:
            try:
                video_item = Video.objects.get(id = add_id)
                video_item.thumbnumber +=1
                video_item.likedone.add(current_user)
                video_item.save()
                return HttpResponse()
            except ObjectDoesNotExist:
                return HttpResponse()
        else:
            return HttpResponse()
    else:
        return HttpResponse()


Вьюшка формирования страницы:

def video(request, video_id):
    videoitem = Video.objects.get(id = video_id)

    context = {
        "videoitem" : videoitem,
    }
    return render(request, 'faceset/videopage.html', context)
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
sim3x
@sim3x
https://docs.djangoproject.com/en/1.9/ref/request-...
if request.is_ajax(): 
   JsonResponse(
      # data, encoder=DjangoJSONEncoder, 
      safe=False, 
      # json_dumps_params=None, 
    {'like_counter': 42})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы