【问题标题】:How to render the text of the selected option in template?如何在模板中呈现所选选项的文本?
【发布时间】:2017-03-03 06:44:58
【问题描述】:

我有一个具有 Select 类型小部件的 ModelForm

 class MyModelForm(ModelForm):
    ...
    widgets = {
        'my_field': Select(
            choices=[('1', 'Choice 1')]
        ),
    }

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

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

正如预期的那样,这个输出:

 1

我怎样才能获得文本“选择 1”?

【问题讨论】:

标签: django django-forms django-templates


【解决方案1】:

虽然不是完全重复,但arogachev's duplicate suggestion 确实帮助我意识到我应该在Model 的字段中设置choices 属性,而不是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

谢谢!

【讨论】:

  • 是的,准确的说,你需要将choices设置为字段参数。
猜你喜欢
  • 1970-01-01
  • 2015-08-06
  • 2020-11-25
  • 1970-01-01
  • 2022-01-23
  • 2013-04-07
  • 1970-01-01
  • 2016-07-21
相关资源
最近更新 更多