Django if语句在模板的for循环内不起作用

时间:2020-10-16 20:01:37

标签: python django web-development-server

因此,我想在登录时在其个人资料中显示该用户的所有帖子,但似乎无法弄清楚该怎么做。这是我的模板:

{% for post in posts %}

    {% if user.username == post.author %}

        <div class="container col-lg-8 ml-lg-5">
            <div class="box">
                
                <a href="#"><img class="rounded-circle account-image"  src="{{ 
                post.author.profile.image.url }}" alt="" ></a>
                <a href="#"><h4 style="float: left;">{{post.author}}</h4></a>
                
                    <small>{{post.date_posted}}</small>
                
                
                <hr width="82%" align="right">
                <br>
                <div class=""> <p>{{post.content}}</p></div>
        
                
                
            
            </div>
            <br>
        </div>
    {% endif %}
{% endfor %}

这是我的模型: 类Post(models.Model):

content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)

它不会显示任何错误,只是无法正常工作。当我尝试删除if语句时,它可以工作,但会向我显示每个用户的每条帖子

1 个答案:

答案 0 :(得分:2)

您正在将当前用户的用户名与帖子的用户实例进行比较。尝试以下方法:

    {% if user == post.author %}

编辑: 如果您对用户未发表的帖子不做任何处理,则应该在视图中进行真正的过滤,以使模板更加简单。