2011-01-24 19 views
5

tengo 2 modelos:Django - conseguir todos los objetos en una tabla que no tienen un ForeignKey en otra tabla

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) 

quiero una lista de Person objetos que no tiene ninguna entrada en el objeto Friend. p.ej.

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

pero no estoy seguro de qué filtro debería ser.

+4

Truco para nombrar: su clase de amigos realmente debería llamarse 'Amistad', ya que está modelando la * relación * entre dos amigos. –

+0

es posible que desee ver esto: http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to- many -relationships – crodjer

Respuesta

10

Intente utilizar el administrador relacionado.

no_friends = Person.objects.filter(friend1=None,friend2=None) 
Cuestiones relacionadas