0

我正在使用 Python 和 Jinja2 在 Google App Engine 中写博客。我有一个用于我的博文的 GQL 表和一个用于所有评论的 GQL 表。公用表中的每条记录都有一个 blogpost_id 列,以便我知道它们链接到哪个博客文章。我使用查询“SELECT * from BLOGPOSTS”并将其传递给我的渲染函数。然后在我的 HTML 模板中有一个 for 循环,可以打印出我所有的博文。这很顺利。在博客文章的永久链接中,打印评论很容易,因为我知道 blogpost_id,所以我可以根据它查询评论表并将它们打印出来。

然而,在首页上,我想在其下方显示每篇博文的前两条评论。但是我无法想出一个解决方案来在我的首页上的博文下方打印出评论,因为我不知道如何将特定博文的评论传递给我的渲染函数。有解决方案吗?

4

1 回答 1

0

为什么不将包含博客文章的 GQL 查询的结果传递给模板,而不是传递将博客文章映射到其最近的两条评论的字典列表?

这样的事情可能会起作用(尽管可能不是最有效的方法):

posts = GqlQuery("SELECT * from BLOGPOSTS")
posts_and_comments = []
for post in posts:
    two_comments = GqlQuery("SELECT * from COMMENTS WHERE blogpost_id = :1 ORDER BY age LIMIT 2", post.blogpost_id)
    current_post = {post: two_comments}
    posts_and_comments.append(current_post)

然后你可以传入posts_and_comments你的模板,并以你喜欢的任何方式迭代它。

此外,blogpost_id您可能希望查看祖先查询,而不是通过检查,并将每个评论的祖先设置为其父帖子。

于 2013-01-24T19:19:37.380 回答