Как получить post.id для кнопки «Мне нравится» в AJAX - Django? - PullRequest
0 голосов
/ 08 апреля 2020

Я возвращаю словарь для количества лайков каждого поста. Идея состоит в том, чтобы увеличить число лайков и отправить их в запрос 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. Пожалуйста, кто-нибудь, помогите мне.

...