根据喜欢的帖子添加不同的图片

时间:2019-08-12 00:58:20

标签: python html django django-templates

我正在创建一个社交媒体网站,用户可以在该网站上互相喜欢。我已经成功完成了大部分工作。

我已允许用户喜欢和不喜欢帖子,并在我的模板中显示了喜欢该帖子的用户列表。

我遇到的一个问题是根据用户是否喜欢该帖子来更改图像。

我当前的实现不正确,我不确定如何解决。目前,我在Post模型上具有一个变量(is_liked),并且图像是否更改取决于该图像是否正确。

我的问题是,如果一个用户喜欢一个帖子,那么它就会显示为每个用户都喜欢。

我想要它,这样每个人都无法看到喜欢该帖子时显示的图形,只有他们自己喜欢它时。

models.py:

class Post(models.Model):
    file = models.FileField(upload_to='files/')
    summary = models.TextField(max_length=600)
    pub_date = models.DateTimeField(auto_now=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    likes = models.ManyToManyField(User, related_name='likes')
    is_liked = models.BooleanField(default=False)

views.py:

def likepost(request, post_id):
    if request.method == 'POST':
        tuser = request.user
        post = get_object_or_404(Post, pk=post_id)

        if post.likes.filter(id=tuser.id).exists():
            post.likes.remove(tuser)
            post.is_liked = False
            post.save()
        else:
            post.likes.add(tuser)
            post.is_liked = True
            post.save()
        return redirect('home')

home.html(模板)

    {% if post.is_liked == True %}
      <a href="javascript:{document.getElementById('like__post{{ post.id }}').submit()}"><div class="" style="position: absolute; bottom: 115px; left: 34px;"> <img src="{% static 'redheart.png' %}" width="22px"  height="22px"> </div></a>
   {% else %}
      <a href="javascript:{document.getElementById('like__post{{ post.id }}').submit()}"><div class="" style="position: absolute; bottom: 115px; left: 34px;"> <img src="{% static 'heart.png' %}" width="22px"  height="22px"> </div></a>
   {% endif %}

0 个答案:

没有答案