После того, как комментарий опубликован, и я пытаюсь понравиться, ajax отстает и не работает сразу - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть система привязки к комментариям на веб-сайте Django, который я создаю, где, когда комментарий нравится, вызывается функция ajax. Тем не менее, я обнаружил, что сразу после того, как я оставляю комментарий и пытаюсь понравиться мой собственный комментарий, request.is_ ajax () == FALSE вместо TRUE, как это обычно бывает. Через несколько минут, и я перезагружаю его, кнопка «Мне нравится» работает нормально. Есть ли объяснение этому, или кто-нибудь сталкивался с чем-то подобным? Каково было ваше решение? Я помещу свой код внизу на случай, если он уместен, но это странно для меня, потому что он обычно работает хорошо, только когда я пытаюсь понравиться только что опубликованным комментарием, он вылетает.

AJAX:

$('#comment-form').submit(function(event){
        event.preventDefault();
        $.ajax({
            type: 'POST',
            url: $(this).attr('action'),
            data: $(this).serialize(),
            dataType: 'json',
            success: function(response) {
                $('.comments-section').html(response['form']);
                $('.reply-link').click(function(event){
                    event.preventDefault();
                    $(this).parents('.parent-comment').next('.replies').fadeToggle();
                })
                $('textarea').val('');
                console.log('work')
            },
            error: function(rs, e) {console.log(rs.responseText)}
        })
    })

VIEWS.PY:

@never_cache
@login_required(login_url='login')
def change_comment_like(request, pk):
    comment = Comment.objects.get(pk=pk)
    print(comment)
    print(request.method)
    print(request.is_ajax())
    if request.method=='POST' and request.is_ajax():
        print('work')
        user = request.user
        liked = False
        if user in comment.likes.all():
            comment.likes.remove(user)
        else:
            comment.likes.add(user)
            liked = True
        comment.save()
        print(comment)
        return JsonResponse({'liked': liked})
    return redirect('post_detail', pk=comment.post.pk)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...