У меня есть система привязки к комментариям на веб-сайте 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)