我有2个型号:
Pages
------------
Page User
S500 John
Gimp John
WoW John
Subscriptions
------------
Page User
S500 John
因此,Subs模型中的Page字段是FK to Pages模型。我正在尝试返回一个查询集,该查询集将显示属于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])
哪个有效,但如何将其合并为一个查询?
答案 0 :(得分:1)
pages = Page.objects.filter(user='John').exclude(subscriptions__user="John")
答案 1 :(得分:0)
您可以使用外键的反方向直接执行此操作。如果您尚未设置reverse_name
,我认为这应该是
pages = Page.objects.filter(user='John').filter(subscriptions_set=None)