2012-10-15 54 views
12

Tôi đang cố gắng lọc mối quan hệ nhiều-nhiều bởi một số qua trường Lớp.Lọc mối quan hệ Nhiều-Nhiều từ trường Mối quan hệ ở Django

Trích dẫn tài liệu Django, tôi sẽ giải thích mục tiêu của tôi

class Person(models.Model): 
     name = models.CharField(max_length=128) 

     def __unicode__(self): 
      return self.name 

class Group(models.Model): 
     name = models.CharField(max_length=128) 
     members = models.ManyToManyField(Person, through='Membership') 

     def __unicode__(self): 
      return self.name 

class Membership(models.Model): 
     person = models.ForeignKey(Person) 
     group = models.ForeignKey(Group) 
     date_joined = models.DateField() 
     invite_reason = models.CharField(max_length=64) 

Trong ví dụ này mục tiêu của tôi Linh hồn được lọc nhiều mối quan hệ và có được chỉ Person người đã tham gia một số Nhóm bắt đầu từ nhất định ngày (trường date_joined).

Có thể không?

Trả lời

23

Bạn có thể query across relationships với ORM django (hoặc trong trường hợp này mối quan hệ ngược):

person = Person.objects.filter(membership__group=example_group, membership__date_joined__gte=example_date) 
+3

Timmy Tôi đang ở tình yêu với bạn. Đây là câu trả lời trong stackoverflow khiến tôi hạnh phúc hơn. Không bao giờ. – reformy

Các vấn đề liên quan