2010-08-20 34 views
7

nesne aracılığıyla düşünün aşağıdaki modellerde alanları erişme:özelleştirilmiş birçok çoğa şablonlar

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) 

üyeliğin özelleştirilmiş çoktan-may ekstra alanları ile nesnesi aracılığıyla.
Bir kişi örneğim varsa, hem normal kodda hem de django şablon dosyasında, tüm üyelik ilişkilerinin ilgili tarih_aralı alanlarına nasıl erişebilirim?

cevap

10

person.membership_set.all(), belirli bir person için tüm Membership örneklerinin bir listesini verecektir. Bunu şablonun yanı sıra normal kodda da kullanabilirsiniz.

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

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

Görünümü gösterebilir misiniz? Sözlük yalnızca render işlevi için argüman olarak düşünür. Class üyeliği daha büyük olduğunda üyelik_set işlevi neden küçük harfle yazılır? – Timo