2011-01-24 24 views
5

tôi có 2 mô hình:django - nhận được tất cả các đối tượng trong một bảng mà không có một ForeignKey trong một bảng

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) 

Tôi muốn có một danh sách các Person đối tượng mà không có bất kỳ mục trong đối tượng Friend. ví dụ.

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

nhưng tôi không chắc bộ lọc nên là gì.

+4

Mẹo đặt tên: Lớp bạn bè của bạn thực sự nên được gọi là 'Hữu nghị', vì nó mô hình hóa mối quan hệ * giữa hai người bạn. –

+0

bạn có thể muốn xem xét điều này: http://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships – crodjer

Trả lời

10

Cố gắng sử dụng trình quản lý có liên quan.

no_friends = Person.objects.filter(friend1=None,friend2=None) 
Các vấn đề liên quan