django - получить все объекты в одной таблице, которые не имеют чужой ключ в другой таблице - PullRequest
6 голосов
/ 24 января 2011

У меня есть 2 модели:

class Friend(models.Model):
    person1 = models.ForeignKey("Person", related_name="friend1")
    person2 = models.ForeignKey("Person", related_name="friend2")
    created = models.DateTimeField(auto_now=True, auto_now_add=True, editable=False)

class Person(models.Model):
    firstname = models.CharField(max_length=100)
    surname = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now=True, auto_now_add=True, editable=False)

Я хочу получить список Person объектов, у которых нет записей в объекте Friend. например,

no_friends = Person.objects.filter(????)

но я не уверен, каким должен быть фильтр.

1 Ответ

10 голосов
/ 24 января 2011

Попробуйте использовать связанный менеджер.

no_friends = Person.objects.filter(friend1=None,friend2=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...