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

Django ORM:查看一个模型在另一个模型中是否没有外键条目,django,django-orm,Django,Django Orm,因此,我有两种型号: class Site(models.Model): ... ... 还有一个: class SiteInfo(models.Model): ... ... site = models.ForeignKey(Site) 有没有办法获取站点信息中没有条目的站点?Site.objects.filter(SiteInfo\uu isnull=True)我认为这会起作用,但效率不高: 如果site.site\u infos\u set.al

因此,我有两种型号:

class Site(models.Model):
    ...
    ...
还有一个:

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

有没有办法获取站点信息中没有条目的站点?

Site.objects.filter(SiteInfo\uu isnull=True)
我认为这会起作用,但效率不高:


如果site.site\u infos\u set.all().count()==0,则使用[site-for-site-in-site.objects.all()]可以找到模型所有反向关系的列表

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

这将列出所有引用此模型的模型(外键、多对多键等)

我现在没有代码来测试您的想法,但我看到您输入了所有站点,其中站点列为空。。。所以我想你指的是SiteInfo。我需要SiteInfo中的每个条目都有一个站点关联。我很想知道哪些网站还没有定义SiteInfo。你的建议行得通吗?我误解了你的问题。:-)这是正确的解决方案。“要引用“反向”关系,只需使用模型的小写名称”。听起来更像!我不知道这件事。我会尽快测试的。非常感谢。我不得不添加
.distinct()
,否则我会得到重复的。我同意DrTyrsa的观点。如果我有1000多个站点,它将通过服务器进行查询。”我认为这会起作用,但效率不高:“我在写它之前说了这句话,认为你有1000多个站点。我理解。无论如何,谢谢你的想法;)