添加不同的图片根据是否喜欢后

2024-09-24 22:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个社交媒体网站,在那里用户可以像其他人一样发布文章。我已经成功地完成了大部分工作

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

我遇到的一个问题是,根据用户是否喜欢这篇文章来更改图像

我目前的实现是不正确的,我不知道如何解决它。目前,我在Post模型上有一个变量(类似于),一个图像会根据这是否为真而改变

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

我想让每个人都看不到的图形显示时,一个职位是喜欢,只有当他们喜欢自己

型号.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)

视图.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 %}

Tags: 用户dividtrueifismodelsrequest