从外键的另一侧接近模型

时间:2010-10-06 10:15:38

标签: django django-orm

使用Django docs'示例BlogEntry模型,如何获得具有Blog且未关联的所有name = "a"个对象的查询集使用Entry模型的任何实例?

在raw(My)SQL术语中,Django ORM等效于:

SELECT * FROM blog_table bt
WHERE bt.name='a' AND bt.id NOT IN (SELECT et.blog_id FROM entry_table et)

1 个答案:

答案 0 :(得分:2)

您需要的是Blog个实例的列表,这些实例具有name = "a"且没有任何关联条目。您可以通过以下方式执行此操作:

Blog.objects.filter(name = "a", entry = None)
#                   ^^^^        ^^^^^
#           <Match name>        <Should have no associated Entry instances>