10

Django शुरुआती प्रश्न। मेरे पास निम्न मॉडल है:टेम्पलेट में कई से अधिक आइटम: जांचें कि कोई खाली नहीं है या कोई भी

class Leg(models.Model): 
    startpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.") 
    endpoint = models.CharField(max_length=50, help_text="examples: 'Smith Elementary' or 'riders' houses'; less than 50 characters.") 
    riders = models.ManyToManyField(Rider, blank=True) 
    drivers = models.ManyToManyField(Driver, blank=True) 

मैं टेम्पलेट में 'पैर' के रूप में उपलब्ध मॉडल का एक उदाहरण बना देता हूं। टेम्पलेट में, मैं देखना चाहता हूं कि, उस उदाहरण के लिए, कोई भी जुड़े ड्राइवर हैं। मैंने {% अगर leg.drivers%} की कोशिश की है, लेकिन यह हमेशा सत्य के मूल्यांकन का प्रतीत होता है, भले ही पैर के लिए कोई ड्राइवर हो या नहीं।

मैं यह देखने के लिए कैसे जांचूं कि वास्तव में कोई ड्राइवर हैं या नहीं? मूल प्रश्न के लिए खेद है लेकिन मुझे इसे समझने की प्रतीत नहीं हो रही है।

+0

'_% अगर leg.drivers_set.all()%}' –

+0

मुझे लगता है कि यह ड्राइवर.leg_set.all जैसे पिछड़े संबंध के लिए होगा। और आप कम से कम django टेम्पलेट इंजन के साथ टेम्पलेट्स में ब्रेसिज़ का उपयोग नहीं कर सकते हैं, जिन्जा इसे स्वीकार करेंगे। – Jingo

+0

पैराथेसिस का उपयोग टेम्पलेट्स में नहीं किया जाता है, केवल ध्यान में। तो होगा: '{% यदि leg.drivers_set.all%}' –

उत्तर

11

{% if leg.drivers %} हमेशा सत्य होगा, क्योंकि यह कई प्रबंधक के लिए बहुत कुछ होगा। सभी संबंधित ड्राइवरों को प्राप्त करने के लिए {% if leg.drivers.all %} आज़माएं।

+1

यदि ड्राइवर ऑब्जेक्ट्स का उपयोग नहीं किया जाता है तो यह 'leg.drivers.count' करने के लिए और अधिक कुशल होगा। – Ski

+0

सही, लेकिन संदर्भ जिसमें ओपी कथन का उपयोग करता है स्पष्ट नहीं है ... – Jingo

1

for ... empty टेम्पलेट टैग इसके लिए बनाया गया है। बस loop leg.drivers.all और अगर आप कोई संदेश नहीं दिखाना चाहते हैं तो कोई संदेश नहीं दिखाना है, तो आप रिक्त खंड में ऐसा कर सकते हैं।

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