我尝试在模板中显示枚举的名称。要清楚,
我在model.py
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")),
)
当我以
之类的形式使用它时 wnr = forms.ChoiceField(label=_("emp_full_reg_wnr"), required=True, choices=EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE)
效果很好。(使用已翻译的值填充下拉列表,当我获得所选项目时,它只会转换为id)
我的问题是我如何通过给出它的id来在我的模板中显示任何翻译的值。
例如,我想使用它EmployerWorkerNumberRange.EMPLOYER_WORKER_NUMBER_RANGE[0]
你能以任何方式建议我吗?
由于
答案 0 :(得分:13)
要显示字段值中的人类可读内容,请在模型实例上使用get_$var_display()
方法(为choices
的所有字段自动创建)。对于你的例子,它是这样的:
{{ company.get_wnr_display }}
要通过索引获取没有模型实例的值,最简单的方法是编写自定义过滤器,将存储在变量中的索引转换为所需的值:
{{ some_value|as_wnr_title }}