Django

2015-09-03 5 views
5

पर आवश्यक चयनडेटाडेट पर डिस्प्ले_लेबेल प्रदर्शित करें SelectDateWidget (https://docs.djangoproject.com/en/1.8/ref/forms/widgets/#selectdatewidget) पर Django के डॉक्टर के अनुसार, empty_labelDateField आवश्यक नहीं है, तो empty_label की आवश्यकता नहीं होगी। मैंने देखा कि DateField आवश्यक है, तो विजेट पर डिफ़ॉल्ट मान January, 1, और <current-year> होगा। क्या DateField आवश्यक बनाने का कोई तरीका है, लेकिन प्रारंभिक रूप पर empty_label (जैसे -----) के साथ विजेट दिखा रहा है?Django

उत्तर

7

दुर्भाग्य से, SelectDateWidget में खाली लेबल केवल प्रयोग किया जाता है, तो क्षेत्र की आवश्यकता नहीं है, लेकिन आप बस SelectDateWidget और अधिभावी create_select विधि उपवर्गीकरण इसे बदल सकते हैं:

class MySelectDateWidget(SelectDateWidget): 

    def create_select(self, *args, **kwargs): 
     old_state = self.is_required 
     self.is_required = False 
     result = super(MySelectDateWidget, self).create_select(*args, **kwargs) 
     self.is_required = old_state 
     return result 

लेकिन उस मामले में आप भी ओवरराइड करने के लिए हो सकता है आपके फ़ील्ड की प्रमाणीकरण, इसलिए यह त्रुटि को फेंक देगा कि फ़ील्ड आवश्यक है, न कि जब रिक्त मूल्य पर चयन छोड़ा जाता है तो वह विकल्प अमान्य नहीं होता है।

+0

शानदार। त्रुटि तब फेंक दी गई जब सभी 3 फ़ील्ड रिक्त थे "यह फ़ील्ड आवश्यक है", और जब 1 या अधिक फ़ील्ड रिक्त थे तो "वैध दिनांक दर्ज करें" था। मुझे लगता है कि यह सही है। धन्यवाद। – vleong

+0

मैंने माना कि सत्यापन इसके लिए तैयार नहीं है, लेकिन ऐसा लगता है, यह है। – GwynBleidD