एक क्षेत्र को देखते हुए;Django मॉडल फ़ील्ड विकल्प - क्या कोई निर्देश बेहतर नहीं होगा?
domain_status_choices = (
(1,'Live')
(2,'Offline')
(3,'Dev')
)
status = models.SmallIntegerField(choices=domain_status_choices)
मैं जानता हूँ कि मैं प्राप्त कर सकते हैं और संख्यात्मक प्रस्तुति की स्थापना की और get_status_display()
का उपयोग पाठ लेबल पाने के लिए। लेकिन यदि कोई उपयोगकर्ता status=Offline
पोस्ट करता है तो इसे सहेजने के लिए मुझे संख्यात्मक मूल्य कैसे प्राप्त हो सकता है? मैं भी उस संख्या या पाठ मानों को सत्यापित करने में सक्षम होना चाहता हूं सूची में हैं।
मेरे लिए यह एक नियम का उपयोग करने के लिए और अधिक समझ में आता है। यहां मेरी वर्तमान विधि है;
domain_status_choices = {
1: 'Live',
2: 'Offline',
3: 'Dev',
}
status = models.SmallIntegerField(choices=domain_status_choices.iteritems())
...
if input1 not in domain_status_choices.keys(): print "invalid"
if input2 not in domain_status_choices.items(): print "invalid"
status = [k for k, v in domain_status_choices.iteritems() if v == input3][0]
क्या कोई बेहतर तरीका है? आमतौर पर टुपल्स का एक ट्यूपल क्यों उपयोग किया जाता है?
आप उपयोग के इस मामले collections.OrderedDict का उपयोग कर की कोशिश की? (विकल्पों के क्रम को संरक्षित करने के लिए।) Http://pymotw.com/2/collections/ordereddict.html –