Я возвращаю словарь для количества лайков каждого поста. Идея состоит в том, чтобы увеличить число лайков и отправить их в запрос AJAX, чтобы он отображал количество лайков без обновления.
Это представление Django, которое я использую.
def like(request, pk):
uid = request.user.id
instance = Post.objects.filter(id=pk).get()
if request.user in instance.likes.all():
instance.likes.remove(uid)
instance.save()
count = int(instance.likes.count())
json_response = {'count': count}
return JsonResponse(json_response)
else:
instance.likes.add(uid)
instance.save()
count = int(instance.likes.count())
json_response = {'count': count}
return JsonResponse(json_response)
И вот как выглядит моя Django HTML страница:
{%for post in post%}
<a href="{% url 'post_detail' post.id %}"><h1>{{post.title}}</h1></a>
<h2>{{post.content}}</h2>
<p>{{post.date}}</p>
<p>{{post.likes.count}}</p>
{%if user in post.likes.all%}
<form action="{%url 'like' post.id %}" method="POST">
{%csrf_token%}
<button type="submit" id="like" >UNLIKE</button>
</form>
{%else%}
<form action="{%url 'like' post.id %}" method="POST">
{%csrf_token%}
<button type="submit" id="like" >LIKE</button>
</form>
{%endif%}
{%endfor%}
Я хочу, чтобы, как только пользователь нажмет кнопку «ЛЮБЫЙ» в ЛЮБОМ сообщении, AJAX должен отправить запросите это представление с соответствующим идентификатором поста , выберет количество лайков с помощью приведенного выше представления django и отобразит его рядом с постом. Я не профессионал в AJAX / Jquery. Пожалуйста, кто-нибудь, помогите мне.