2010-08-03 11 views
27

मैं अपना Django एप्लिकेशन हूं, मैं एक विशेष मॉडल के लिए सभी ऑब्जेक्ट्स ला रहा हूं:Django के टेम्पलेट्स में मॉडल के लिए ऑब्जेक्ट गिनती कैसे प्राप्त कर सकता हूं?

secs = Sections.objects.filter(order__gt = 5) 

मैं इस टेम्पलेट को अपने टेम्पलेट्स में पास करता हूं और मैं मॉडल के सभी गुणों जैसे section.name, section.id, आदि

Books नामक एक मॉडल है जिसमें Sections मॉडल के लिए एक एफके है। जब मैं अपने टेम्पलेट में secs varible पर पुन: सक्रिय करता हूं, तो मैं प्रत्येक अनुभाग के लिए पुस्तकों की गिनती कैसे प्राप्त कर सकता हूं? Xzx17 की तरह कुछ ??

धन्यवाद

उत्तर

59

तो BooksSections करने के लिए एक ForeignKey है, तो Django स्वचालित रूप से धारा से एक रिवर्स संबंध वापस पुस्तकें करने के लिए है, जो books_set बुलाया जाएगा पैदा करेगा। यह एक प्रबंधक है, जिसका अर्थ है कि आप .filter(), .get() और .count() पर इसका उपयोग कर सकते हैं - और आप इन्हें अपने टेम्पलेट में उपयोग कर सकते हैं। इसके अतिरिक्त

9

-

{{ sec.books_set.count }} 

(Books के बजाय Book इस मॉडल का एक उदाहरण है, कई नहीं एक किताब के लिए जानकारी रखता वैसे, आप एकवचन संज्ञाओं अपने मॉडल के नाम, बहुवचन नहीं करने के लिए उपयोग करना चाहिए।।) डैनियल ने क्या कहा, Django स्वचालित रूप से रिवर्स रिश्तों को बनाता है (जैसा कि डैनियल ने ऊपर कहा था) जब तक कि आप संबंधित नामों के तर्क के साथ अपने नाम ओवरराइड नहीं करते। द्वारा टेम्पलेट में

class Book(models.Model): 
    section = models.ForeignKey(Section, related_name="books") 

तो फिर तुम खंड की किताबों का उपयोग कर सकते गिनती:

{{ sec.books.count }} 

आप अपने प्रश्न में सूचित के रूप में अपने विशेष मामले में, आप की तरह कुछ होगा।

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

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