Django:如何显示帖子查询的作者?

2024-04-28 15:59:40 发布

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

我试着为每个作者制作单独的页面,显示他们的名字和帖子。我似乎无法显示用户名。在

在视图.py在

class UserProfileView(generic.ListView):
    template_name = 'howl/user-profile.html'
    context_object_name = 'user_howls'

    def get_queryset(self):
        author = self.request.user
        u = User.objects.get(username=author)
        return Howl.objects.filter(author=u)

在模型.py在

^{pr2}$

这就是我被困的地方。在

用户-html个人资料在

{% extends 'howl/base.html' %}

{% block content %}

<h1>User: {{user_howl.author}}</h1>

{% for user_howl in user_howls %}
<ul>
    <li>{{user_howl.content}}</li>
</ul>
{% endfor %}

{% endblock %}

内容显示得很好,但是标题只是说“User:”,如何在不使用for循环的情况下给它一个上下文? 我试过:

{% for author in user_howls.author %}
<h1>User: {{author}}</h1>
{% endfor %}

以及

{% if user_howls.author %}
<h1>User: {{user_howl.author}}</h1>
{% endif %}

结果仍然相同,显示“User:”


Tags: nameinpyselfforgetobjectshtml
2条回答

由于您的查询集是基于属于当前用户的帖子,所以您可以将所有这些设置为快捷方式,只需直接向用户显示:

User: {{ user }}

user_howls是一个查询集,因此它没有author属性,您需要获取迭代对象的作者

{% for howl in user_howls %}
<h1>User: {{ howl.author}}</h1>
{% endfor %}

更重要的是,当您只是返回用户配置文件的结果时,从Howl列表开始是没有意义的,使用ListView也没有意义。因此,相反,从用户开始,然后查找它的嚎叫

^{pr2}$

相关问题 更多 >