如何在django中进行此类查询。
我有Site模型,在那里我可以找到与主题模型的关系。在主题模型中,我可以关注帖子模型。我想从一个只提供有关网站信息的网站上提取帖子,而不是主题。什么是更多的帖子必须从查询开始。
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不是查询集,我不能做出这样的动作。很明显,但是我不知道如何让它起作用?我听说我可以使用过滤器(** kwargs),但我不知道如何使用它?
答案 0 :(得分: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)