在HTML模板中显示喜欢的用户名

时间:2019-08-06 21:42:36

标签: python django postgresql

我添加了一个用户喜欢的系统,用户可以在其中喜欢帖子。我已经成功添加了此内容,但是似乎无法显示喜欢该帖子的人的用户名。这是我当前的实现。

models.py

class Post(models.Model):
    likes = models.ManyToManyField(User, related_name='likes')

    @property
    def total_likes(self):
        return self.likes.count()

views.py

def likepost(request, pk):
    if request.method == 'POST':
        user = request.user
        post = get_object_or_404(Post, pk=pk)
        if post.likes.filter(id=user.id).exists():
            post.is_liked = True
            post.likes.remove(user)
            post.save()
        else:
            post.is_liked = False
            post.likes.add(user)
            post.save()
        return redirect('home')

home.html

 {% for post in posts.all %}
        <form id="like__post" method="POST" action="{% url 'likepost' post.id %}">
                {% csrf_token%}
                <input type="hidden">
              </form>
              <div style="position: absolute; bottom:80px; left: 85px;">
              {% if post.is_liked == True %}
                      <a href="javascript:{document.getElementById('like__post').submit()}"><img src="{% static 'heartred.png' %}" width="35px" height="35px"></a>
              {% else %}
                      <a href="javascript:{document.getElementById('like__post').submit()}"><img src="{% static 'heart.png' %}" width="33px" height="33px"></a>
              {% endif %}
{% endfor %}

 <ul> {{ post.likes }} </ul>

到目前为止。在我的模板中,我得到以下信息: auth.User.None

1 个答案:

答案 0 :(得分:0)

likes是一个多对多字段,您需要对其进行迭代。

<ul>
{% for like in post.likes.all %}
 <li>{{ like.username }}</li>
{% endfor %}
</ul>