मान लीजिए कि मैं एक मॉडल बनाना और अपडेट करना चाहता हूं। कौन से फ़ील्ड प्रदर्शित होते हैं और सत्यापन का प्रकार क्रिया (निर्माण या अद्यतन) पर निर्भर करता है। लेकिन वे अभी भी एक ही सत्यापन और functality साझा करते हैं। क्या मॉडलफॉर्म को संभालने का एक साफ तरीका है (केवल अगर इंस्टॉलेशन हर जगह मौजूद है) या मुझे बस दो अलग-अलग मॉडल फॉर्म बनाना चाहिए?Django डिज़ाइन पैटर्न - मॉडल बनाने और अपडेट करने के लिए फॉर्म
5
A
उत्तर
4
दो संभावनाएं वसंत को ध्यान में रखती हैं। तुम्हें पता है, प्रपत्र के __init__
विधि में एक विशेषता सेट कर सकते हैं या तो एक पैरामीटर के आधार पर आप स्पष्ट रूप में पारित, या self.instance
मौजूद है या नहीं पर आधारित है और एक गैर कोई नहीं पी है:
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
# either:
self.edit = kwargs.pop('edit', False)
# or:
self.edit = hasattr(self, instance) and self.instance.pk is not None
super(MyModelForm, self).__init__(*args, **kwargs)
# now modify self.fields dependent on the value of self.edit
अन्य विकल्प आपके modelform उपवर्ग है - बेस क्लास में संयुक्त कार्यक्षमता रखें, फिर उप-वर्गों में विशिष्ट बनाएं या अद्यतन कार्यक्षमता रखें।
संबंधित मुद्दे
- 1. Mongoid array फ़ील्ड बनाने और अपडेट करने के लिए फॉर्म
- 2. क्या विज़ार्ड बनाने के लिए कोई डिज़ाइन पैटर्न है?
- 3. मॉडल संपादित करने के लिए Django फॉर्म विज़ार्ड
- 4. बैकबोन.जेएस मॉडल बनाने और अपडेट करने के लिए मॉडल अलग यूआरएल?
- 5. Django (गैर-मॉडल) फॉर्म
- 6. Django को मॉडल फॉर्म
- 7. Django: डेटाबेस डिज़ाइन के लिए सर्वोत्तम अभ्यास
- 8. django मॉडल फॉर्म ऑब्जेक्ट्स के लिए स्वचालित निर्माण दिनांक?
- 9. Django फॉर्म: छुपा मॉडल फ़ील्ड?
- 10. डेटाबेस तालिका के लिए सर्वश्रेष्ठ डिज़ाइन पैटर्न
- 11. django मॉडल बनाने के उपयोग पर __init__?
- 12. डिज़ाइन पैटर्न पैटर्न?
- 13. उपयोग करने के लिए सर्वश्रेष्ठ डिज़ाइन पैटर्न: एडाप्टर या मुखौटा
- 14. एमवीसी डिज़ाइन पैटर्न
- 15. पैटर्न AsyncTask "प्रक्रियात्मक" बनाने के लिए पैटर्न
- 16. Django में फॉर्म इनपुट और मॉडल सत्यापन को अलग करना?
- 17. एकाधिक विरासत के बजाय उपयोग करने के लिए डिज़ाइन पैटर्न
- 18. डिज़ाइन पैटर्न सलाह के लिए पूछ रहा है: पुश मॉडल बनाम। मॉडल खींचें
- 19. एक मॉडल को दूसरे मॉडल में बदलने के लिए डिज़ाइन पैटर्न
- 20. सी ++ कोड बनाने के लिए पैटर्न
- 21. Django देखें, मॉडल, फॉर्म, ऐप नामकरण
- 22. फ़िल्टरिंग विकल्प के लिए डिज़ाइन पैटर्न अनुशंसा
- 23. डेटाबेस अनुप्रयोग के लिए डिज़ाइन पैटर्न जो
- 24. अनुमति हैंडलिंग के लिए पैटर्न/डिज़ाइन सुझाव
- 25. घटनाओं को संसाधित करने के लिए डिज़ाइन पैटर्न
- 26. AJAX और DJANGO फॉर्म
- 27. व्यापार नियम सत्यापन के लिए फ्रेमवर्क/डिज़ाइन पैटर्न
- 28. प्रोजेक्ट यूलर डिज़ाइन पैटर्न
- 29. एक असेंबलर बनाने के लिए डिजाइन पैटर्न
- 30. प्रदर्शित करने और संपादित करने के लिए Django फॉर्म का उपयोग करना?
शांत, यही वह भी था जो मैं सोच रहा था। यह सोच रहा था कि ऐसा करने का कोई बेहतर तरीका था, लेकिन यह मेरे लिए अच्छा लग रहा है। – killerbarney