如何在模板中呈现所选选项的文本?

时间:2016-10-21 04:30:12

标签: django django-forms django-templates

我有一个ModelForm,它有一个Select

类型的小部件
 class MyModelForm(ModelForm):
    ...
    widgets = {
        'my_field': Select(
            choices=[('1', 'Choice 1')]
        ),
    }

在我看来,我检索已存储的模型并将表单作为my_form传递给模板:

<div>{{ my_form.my_field.value }}</div>

正如预期的那样,输出:

 1

如何获取文字&#39;选择1&#39;代替?

1 个答案:

答案 0 :(得分:0)

虽然不完全相同,arogachev's duplicate suggestion确实帮助我意识到我应该在choices的字段中设置Model属性,而不是ModelForm的小部件:

class MyModel(Model):
    my_field = models.CharField(max_length=50, choices=[
        ('1', 'Choice 1')
    ])

这样,我可以这样做:

<div>{{ my_form.instance.get_my_field_display }}</div>

哪个输出

Choice 1

谢谢!