Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:返回在两个模型中具有非重叠值的查询集_Django_Django Queryset - Fatal编程技术网

Django:返回在两个模型中具有非重叠值的查询集

Django:返回在两个模型中具有非重叠值的查询集,django,django-queryset,Django,Django Queryset,我有两种型号: Pages ------------ Page User S500 John Gimp John WoW John Subscriptions ------------ Page User S500 John 所以Subs模型中的页面字段是一个FK-to-Pages模型。我正在尝试返回一个查询集,该查询集将显示属于John的所有页面,而没有属于John的订阅 我试过这样的方法: fbpages = Page.objects.filter

我有两种型号:

Pages
------------
Page    User
S500    John
Gimp    John
WoW     John

Subscriptions
------------
Page    User 
S500    John
所以Subs模型中的页面字段是一个FK-to-Pages模型。我正在尝试返回一个查询集,该查询集将显示属于John的所有页面,而没有属于John的订阅

我试过这样的方法:

fbpages = Page.objects.filter(user='John').exclude(id__in=[Page.id for Page in Page.subscriptions.filter(Page=Page)])
current_subs = Subscriptions.objects.filter(user='John')
pages = Page.objects.filter(user='John').exclude(id__in=[subs.Page.id for subs in current_subs])
我想我已经很接近了,但我不确定我的问题出在哪里

我做了这样的事情:

fbpages = Page.objects.filter(user='John').exclude(id__in=[Page.id for Page in Page.subscriptions.filter(Page=Page)])
current_subs = Subscriptions.objects.filter(user='John')
pages = Page.objects.filter(user='John').exclude(id__in=[subs.Page.id for subs in current_subs])

但如何将其合并到一个查询中?

您可以使用外键的相反方向更直接地执行此操作。如果您没有设置
reverse\u name
,我想应该是这样的

pages = Page.objects.filter(user='John').filter(subscriptions_set=None)