Django ORM:查看模型在另一个模型中是否没有外键输入

时间:2011-05-23 08:43:44

标签: django django-orm

所以,我有这2个型号:

class Site(models.Model):
    ...
    ...

另一个:

class SiteInfo(models.Model):
    ...
    ...
    site = models.ForeignKey(Site)

有没有办法让SiteInfo中没有条目的网站?

3 个答案:

答案 0 :(得分:12)

Site.objects.filter(siteinfo__isnull=True)

答案 1 :(得分:0)

有一种通用的方法可以找到模型中所有反向关系的列表。

reverse_model_array = [f.related_model for f in model._meta.get_fields() 
if f.auto_created and not f.concrete]

这将列出所有与此模型相关的模型(外键,多对多键等)

答案 2 :(得分:-2)

我认为这会有效,但效率不高:

with_no_site_info = [Site.objects.all()中站点的站点,如果是site.site_infos_set.all()。count()== 0]