我正在尝试使用Django构建一个简单的博客,并尝试显示博客帖子以及与帖子相关的评论数量。不幸的是,我在使用字典打印出值时遇到了麻烦 - 或者,至少在我想要的地方。
在我的views.h文件中:
class IndexView(generic.TemplateView):
template_name = 'blogs/index.html'
num_comments = { }
def get_blogs(self):
"""
Returns the last 5 published blog posts.
"""
blogs = BlogPost.objects.filter(
pub_date__lte = timezone.now()
).order_by('-pub_date')[:5]
for blog in blogs:
# Setting our num_comments dictionary by getting
# the number of comments from a particular blog post
self.num_comments[blog.id] = len(Comment.objects.filter(blog_post = blog.id))
return blogs
在我的index.html文件中:
{{ view.num_comments }}
{% if view.get_blogs %}
{% for blog in view.get_blogs %}
<div>
<h1>{{ blog.post_title }}</h1>
<p>{{ blog.post_text }}</p>
<ul>
{{ blog.id }}
{{ view.num_comments }}
{% for key, value in view.num_comments %}
<li>
{{ key }} <-- Does not display
{{ value }} <-- Does not display
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
{% else %}
<p>No blogs are available.</p>
{% endif %}
在我明确调用{{ view.num_comments }}
的地方,正在显示正确的字典。知道为什么我的字典没有正确获得密钥和值对吗?感谢。