2011-05-25 23 views
5

bentercüme enum alanları

gibi formda kullanarak zaman

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")), 
) 

model.py yılında sınıf gibi enum var, açık olmak template.To bir enum adını göstermeye çalışırım

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

o

. Büyük işler (tercüme değerlerle açılan doldurur ve seçilen öğe olsun sadece id döner)

Sorum şu ki, şablonuma çevrilmiş değeri nasıl gösterebilirim? Örneğin, onu kullanmak isterim EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE[0]

Bana herhangi bir yol önerebilir misiniz?

Teşekkür

cevap

11

, insan tarafından okunabilir alan değerinin dan göstermek modeli örneğinde (choices ile tüm alanlar için otomatik olarak oluşturulur) get_$var_display() yöntemi kullanmak için. senin Örneğin böyle bir şey:

{{ company.get_wnr_display }} 

modeli örneği olmadan endeksi ile değeri elde etmek için, en kolay yolu bir değişken saklanan endeksi dönüştürecektir özel filtre gerekli yazma değerdir:

{{ some_value|as_wnr_title }} 
+0

It Mükemmel çalışıyor, teşekkürler! Böyle şeyler hakkında okuyabileceğim bir belge var mı? Ben django belgelerini okudum ama böyle bir kullanım farketmedim .. – brsbilgic

+0

Hepsi django belgelerinde, yanlış bölümlere bakıyor olabilirsiniz. Bu özel yöntem şurada: https://docs.djangoproject.com/en/1.3/ref/models/instances/ –