Django ORM: посмотрите, нет ли у модели записи внешнего ключа в другой модели - PullRequest
8 голосов
/ 23 мая 2011

Итак, у меня есть 2 модели:

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

и еще один:

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

Есть ли способ получить сайты, которые не имеют записи в SiteInfo?

Ответы [ 3 ]

12 голосов
/ 23 мая 2011

Site.objects.filter(siteinfo__isnull=True)

0 голосов
/ 24 ноября 2018

Существует общий способ найти список всех обратных связей модели.

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

В этом списке будут перечислены все модели, имеющие отношение к этой модели (внешний ключ, ключ "многие ко многим" и т. Д.)

0 голосов
/ 23 мая 2011

Я думаю, что это будет работать, но не так эффективно:

with_no_site_info = [сайт для сайта в Site.objects.all (), если site.site_infos_set.all (). Count () == 0]

...