2010-08-20 21 views
7

Hãy xem xét các mô hình sau:Làm thế nào để truy cập vào các lĩnh vực trong một tùy chỉnh nhiều-nhiều thông qua đối tượng trong mẫu

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

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

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

Membership là một tùy chỉnh nhiều-có thể thông qua đối tượng với trường bổ sung.
Nếu tôi có một cá thể cá nhân, làm cách nào tôi có thể truy cập vào các trường date_joined tương ứng của tất cả các mối quan hệ thành viên của nó - cả trong mã thông thường và trong tệp mẫu django?

Trả lời

10

person.membership_set.all() sẽ cung cấp cho bạn danh sách tất cả Membership trường hợp cho một số person nhất định. Bạn có thể sử dụng mã này trong mã thông thường cũng như trong mẫu.

for each in person.membership_set.all(): 
    print each.date_joined 

{% for each in person.membership_set.all %} 
    {{ each.date_joined }} 
{% endfor %} 
+0

Bạn có thể hiển thị chế độ xem không? Bao gồm từ điển làm đối số cho hàm render chỉ của người? Tại sao hàm membership_set được viết trong trường hợp thấp hơn khi Lớp thành viên cao hơn? – Timo

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