我正在练习 Django 的基于类的视图。
似乎我覆盖的 get_context_data 函数无法正常工作,但我不知道出了什么问题:(
我的代码:
网址.py
url(r'^user/(?P<pk>\d+)/posts/$', UserPosts.as_view(), name='user_post'),
视图.py
class UserPosts(ListView):
template_name = 'app_blog/user_posts_page.html'
context_object_name = 'post_list'
def get_queryset(self):
self.user = get_object_or_404(User, id=self.kwargs['pk'])
return self.user.post_set.order_by('-id')
def get_context_data(self, **kwargs):
context = super(UserPosts, self).get_context_data(**kwargs)
context['user'] = self.user
return context
user_post_page.html
{% block content %}
<div class="main_content">
<h2>Welcome to {{user.username}}'s User Post Page!</he>
<ul>
{% for post in post_list %}
<li><a href="/blog/post/{{post.id}}/">{{post.post_title}}</a></li>
{% endfor %}
</ul>
</div>
{% endblock %}
html页面正确显示用户的post_list,但h2标签显示:
Welcome to 's User Post Page!
我很确定我在 get_context_data 函数中传递了“用户”变量,但是 html 页面没有显示 user.username ...知道为什么会发生这种情况:(??
谢谢