Django: запрос, в котором GenericRelation имеет значение null - PullRequest
2 голосов
/ 18 ноября 2011

Я хотел бы запросить модель для случаев, когда поле родового отношения не пусто (то есть, в приведенном ниже примере я ищу случаи, где document.count ()> 0):

class Report(models.Model):
    document   = generic.GenericRelation(Document)

Что-то вроде:

Report.objects.filter(date__gte=twomonths).exclude(document__isnull=True)

К сожалению, это не работает - запрос возвращает объекты, у которых нет «документа» (т. Е. Он возвращает объекты, где document.count () равен 0).

Есть ли способ запросить случаи, когда родовое отношение пусто?

1 Ответ

2 голосов
/ 18 ноября 2011

Я полагаю, что в вашем вопросе все еще могут быть некоторые противоречия.Примечание: «Я ищу случаи, когда document.count () == 0», а затем - «К сожалению, это не работает - запрос возвращает объекты, у которых нет« документа »(т. Е. Он возвращает объекты, где документ.count () = 0) ".

Если вы хотите Report s, которые имеют нет документов, вы можете использовать:

Report.objects.filter(document__isnull=True)

или

Report.objects.exclude(document__isnull=False)

Если вы хотите, чтобы Report s имели хотя бы один документ, вы можете использовать:

Report.objects.filter(document__isnull=False)

или

Report.objects.exclude(document__isnull=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...