Django में सशर्त स्वरूपण करने का सही तरीका क्या है?डैंजो सशर्त स्वरूपण करने का तरीका
मेरे पास एक मॉडल है जिसमें एक दिनांक फ़ील्ड है, और मैं रिकॉर्ड की एक सूची प्रदर्शित करना चाहता हूं, लेकिन उस तिथि फ़ील्ड के मूल्य के आधार पर पंक्तियों को रंगना चाहता हूं। उदाहरण के लिए, आज की तारीख से मेल खाने वाले रिकॉर्ड मैं पीला होना चाहता हूं, जो रिकॉर्ड आज से पहले है, मैं लाल रंग के बाद हरे रंग के और चाहता हूं।
कहीं भी Django में आपको रिकॉर्ड की तारीख के साथ वर्तमान तिथि की तुलना करने की तुलना करने की आवश्यकता होगी।
मैं तीन अलग अलग स्थानों है कि तुलना किया जा सकता है देख सकते हैं:
- अपने मॉडल के लिए एक विधि जोड़ें, उदाहरण के लिए, स्थिति(), है कि या तो 'अतीत', 'वर्तमान', 'भविष्य' रिटर्न और तब पंक्तियों को रंगने के लिए टेम्पलेट में इसका उपयोग करें।
- टेम्पलेट में एक क्वेरीसेट लौटने की बजाय दृश्य में, सूची को पूर्व-प्रक्रिया करें और प्रत्येक रिकॉर्ड की तुलना करें, टेम्पलेट में उपयोग किए जाने वाले 'अतीत', 'वर्तमान' और 'भविष्य' मानों वाला एक नया नियम बनाएं
- एक नया टेम्पलेट टैग बनाएं जो तुलना करता है।
इनमें से कौन सी विधियां इसे करने का सही Django तरीका है? ऐसा लगता है कि सशर्त स्वरूपण ऐसा कुछ है जो अक्सर आ जाएगा, और चूंकि आप टेम्पलेट में मनमाने ढंग से तुलना नहीं कर सकते हैं, इसलिए कुछ अन्य समाधान की आवश्यकता है।
यह सरल स्वरूपण नियमों के लिए लागू होगा, उदाहरण के लिए, यदि मैं छात्र ग्रेड की एक सूची प्रदर्शित करना चाहता था, और मैं 80% से अधिक हरे रंग और 30% से नीचे लाल बनाना चाहता था।
एक अच्छा समाधान, हालांकि, एक से अधिक मॉडल के साथ आपको मॉडल विधि को हर दूसरे मॉडल पर कॉपी करना होगा, जिससे आप यह करना चाहते हैं, जिससे यह मार्ग थोड़ा गीला हो जाता है। – googletorp
या तो मॉडल विरासत या उपयोगिता फ़ंक्शन कोड डुप्लिकेशन को कम करेगा। –
@googletorp: प्रश्न में एक से अधिक मॉडल का उल्लेख नहीं किया गया था। कक्षा के नामों को असाइन करने के लिए आवश्यक कोड की मात्रा तुच्छ है और निश्चित रूप से या तो अलग, पुन: उपयोग किया गया फ़ंक्शन या सुपरक्लास का हिस्सा हो सकता है। –