Django выделяет объекты с пустым ManyToManyField - PullRequest
4 голосов
/ 04 октября 2010

Учитывая следующие модели, зная семью, как выбрать детей без покупателей?

class Family...

class Kid(models.Model):
    name = models.CharField(max_length=255)
    family = models.ForeignKey(Family)
    buyer = models.ManyToManyField(Buyer, blank=True, null=True)

family = get_object_or_404(Family, pk=1)
for_sale = family.kid_set.filter(buyer... this screws my child trade business

Ответы [ 2 ]

8 голосов
/ 04 октября 2010

family.kid_set.filter(buyer__isnull=True) должно работать.

3 голосов
/ 04 октября 2010
Ответ

@ piquadrat правильный. Вы можете также сделать:

for_sale = Kid.objects.filter(family__pk = 1, buyer = None)

Это позволяет вам избежать отдельного запроса для поиска экземпляра Family.

...