2011-05-25 16 views
5

मैं मैं model.pyअनुवाद क्षेत्रों enum

class EmployerWorkerNumberRange(): 
R_0 = 0 
R_1_5 = 1 
R_6_15 = 2 
UNKNOWN = 3 

EMPLOYER_WORKER_NUMBER_RANGE =(
    (R_0,_("wnr_0")), 
    (R_1_5 ,_("wnr_1_5")), 
    (R_6_15,_("wnr_6_15")), 
    (UNKNOWN,_("UnknownWorkerNumberRange")), 
) 

में वर्ग की तरह enum है जब मैं

की तरह के रूप में इसका इस्तेमाल करते हैं template.To में एक enum का नाम दिखाने स्पष्ट होना, करने की कोशिश

wnr = forms.ChoiceField(label=_("emp_full_reg_wnr"), required=True, choices=EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE)

यह बहुत अच्छा काम करता है। (अनुवाद मूल्यों के साथ लटकती भरता और जब मैं चयनित आइटम प्राप्त यह सिर्फ आईडी बदल जाता है)

मेरा सवाल यह है कि मैं इसे अपने आईडी में देकर किसी भी अनुवादित मूल्य को कैसे दिखा सकता हूं। उदाहरण के लिए, मैं इसका उपयोग करना चाहूंगा EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE[0]

क्या आप मुझे किसी भी तरह सुझा सकते हैं?

धन्यवाद

उत्तर

11

मानव पठनीय क्षेत्र मूल्य की से दिखाने के लिए, मॉडल उदाहरण पर (choices के साथ सभी क्षेत्रों के लिए स्वचालित रूप से बनाया) get_$var_display() विधि का उपयोग करें। आपके उदाहरण के लिए यह कुछ इस तरह है:

{{ company.get_wnr_display }} 

मॉडल उदाहरण के बिना सूचकांक द्वारा मूल्य प्राप्त करने के लिए, सबसे आसान तरीका की जरूरत है कि एक चर में संग्रहीत सूचकांक में परिवर्तित कर देंगे कस्टम फ़िल्टर लिखना है मूल्य:

{{ some_value|as_wnr_title }} 
+0

यह सही काम करता है, धन्यवाद! क्या कोई दस्तावेज है जिसे मैं ऐसी चीजों के बारे में पढ़ सकता हूं? मैंने django दस्तावेज पढ़े हैं लेकिन मैंने इस तरह के उपयोग को नहीं देखा है .. – brsbilgic

+0

यह सब django दस्तावेज में है, हो सकता है कि आप गलत वर्गों को देख रहे हों। यह विशेष विधि यहां है: https://docs.djangoproject.com/en/1.3/ref/models/instances/ –