2010-08-20 11 views
7

में वस्तु के माध्यम से विचार करें निम्नलिखित मॉडल में क्षेत्रों तक पहुँचने के लिए:कैसे एक स्वनिर्धारित कई-से-अनेक टेम्पलेट्स

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) 

सदस्यता है एक स्वनिर्धारित कई करने के लिए हो सकता है अतिरिक्त क्षेत्रों के साथ वस्तु के माध्यम से।
यदि मेरे पास कोई व्यक्ति उदाहरण है, तो मैं अपने सभी सदस्यता संबंधों के संबंधित डेट_जॉन्डेड फ़ील्ड तक कैसे पहुंच सकता हूं - नियमित कोड और डीजेंगो टेम्पलेट फ़ाइल में दोनों?

उत्तर

10

person.membership_set.all() आप किसी दिए गए person के लिए सभी Membership की कई घटनाओं के दे देंगे। आप इसे नियमित कोड के साथ-साथ टेम्पलेट में भी उपयोग कर सकते हैं।

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

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

क्या आप दृश्य दिखा सकते हैं? शब्दकोष केवल व्यक्ति के रेंडर फ़ंक्शन के लिए तर्क के रूप में शामिल करता है? कक्षा सदस्यता ऊपरी मामले में सदस्यता के मामले में सदस्यता_सेट फ़ंक्शन क्यों लिखा जाता है? – Timo

संबंधित मुद्दे