我试着为每个作者制作单独的页面,显示他们的名字和帖子。我似乎无法显示用户名。在
在视图.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:”
由于您的查询集是基于属于当前用户的帖子,所以您可以将所有这些设置为快捷方式,只需直接向用户显示:
user_howls
是一个查询集,因此它没有author
属性,您需要获取迭代对象的作者更重要的是,当您只是返回用户配置文件的结果时,从
^{pr2}$Howl
列表开始是没有意义的,使用ListView
也没有意义。因此,相反,从用户开始,然后查找它的嚎叫相关问题 更多 >
编程相关推荐