2

我正在尝试将查询的结果存储在列表或类似列表中(尝试不同的替代方案),但我得到最远的一个是:

def index(request):
for post in blog_posts:
        comments_total.setdefault(post.id, []).append(comments.total(post.id))
return render_to_response('blog/index.html', {
'comments': comments_total})

在返回数据中我得到: {5L: [2], 6L: [1]}

我正在使用此代码访问:

{% if comments %}
{{comments}}<br />
{% for cid in comments %}
{% if cid == post.id %}
{{cid}} - {{comments.cid.0}}<br />
{{cid}} - {{comments.6.0}}
{% endif %}
{% endfor %}
{% endif %}

它整体打印出来的是:

{5L: [2], 6L: [1]} 5 - 5 - 1

是否有替代方法可以获取所有评论,在这种情况下,博客,计算每篇文章的结果并将其返回到模板?

我想要做的是为博客的起始页获取一个计数器。“你对这篇文章有 (X) 条评论”之类的。

4

1 回答 1

2

您可以以更有效的方式“显示每个帖子的评论数”

假设您有两个模型PostComment. 只需在模型中定义一个related_name到 postForeignKey关系Comment

class Comment(models.Model):
    post = models.ForeignKey(Post, related_name='comments')
    # other fields

然后在模板中你可以这样做:

{% for post in posts %}
    {{post.comments.count}}
{% endfor %}
于 2013-01-10T22:26:09.593 回答