как сделать вызов Ajax для просмотра Django? - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь создать кнопку «Мне нравится», но я не могу сделать ajax-вызов для просмотра django. Мой код с httpresponse (не с ajax, как следующие): -

/models.py
class post(models.Model):
    Profile=models.ForeignKey(Profile,on_delete=models.CASCADE)
    Picture=models.ImageField(upload_to='PostMedia',blank=True,null=True)
    DatePosted=models.DateTimeField(default=timezone.now)
    Content=models.TextField(blank=True,null=True)
    user_like=models.ManyToManyField(User,related_name="likes",blank=True)

    def __str__(self):
        return self.Profile.user.username

    @property
    def totallikes(self):
        return self.user_like.count()

    class Meta:
        ordering=['-DatePosted']

@property
def like_count(self):
    return len(likes.objects.filter(post=self))

/urls.py
 path('like/<int:postid>',views.like_button,name='like_button'),

/views.py
def like_button(request,postid):
    postresult=get_object_or_404(post,id=postid)
    if postresult.user_like.filter(id=request.user.id).exists():
        postresult.user_like.remove(request.user)
    else:
        postresult.user_like.add(request.user)
    return redirect('feed') 

пока мой шаблон: -

{% for p in result %}
    <div class="SpriteContainer">
      <a href="/like/{{ p.id }}"><img src="{%static "/images/icons/heart.png" %}"/></a>
      <p style="display: inline-block;">{{ p.totallikes }}</p>
    </div>
       {% endfor %}

Теперь я хочу сделать две вещи: -
1) Чтобы сделать вызов ajax, чтобы мне не нужно было перезагружать страницу.
2) Чтобы проверить, понравился ли текущему вошедшему в систему пользователю сообщение или нет, чтобы я мог поменять значок на like.can я делаю это прямо в шаблоне или мне нужно объявить собственный тег шаблона django?

...