0

如何在 django 中进行这样的查询。

我有站点模型,我可以在其中找到与主题模型的关系。在主题模型中,我可以找到与帖子模型的关系。我想从仅包含有关站点而不是主题的信息的站点中提取帖子。更多的帖子必须从查询开始。

query = request.GET.get('query','')         
iweb_obj = IWeb.objects.get(id=iweb_id)
topics = Topic.objects.filter(iweb=iweb_obj)
iweb_posts = []

for t in topics:
  posts = Post.objects.filter(topic=t)

for p in posts:
  iweb_posts.append(p)          


iweb_posts = iweb_.filter(content__istartswith=query)

我有一个错误,即 iweb_posts 未设置查询,我无法执行此类操作。这很明显,但是我不知道如何使它起作用?我听说我可以使用 filter(**kwargs) 但我不知道如何使用它?

4

1 回答 1

1

您的逻辑看起来有点古怪,因为您posts每次都在topic循环中覆盖。您可以在不使用循环和列表的情况下仅使用查询集过滤器来完成所需的操作(__in例如,我添加了一个过滤器):

query = request.GET.get('query','')         
iweb_obj = IWeb.objects.get(id=iweb_id)
topics = Topic.objects.filter(iweb=iweb_obj)

iweb_posts = Post.objects.filter(topic__in=topics).filter(content__istartswith=query)
于 2012-07-18T15:04:12.450 回答