[英]How to format the labels of choices in a choice field from a Django form?
我想更改Django表单的选择中显示的文本,请选择选择字段。 这是一些示例代码:
CHOICES = (
('T1', 'Thing 1'),
('T2', 'Thing 2')
)
class ExampleForm(forms.Form):
field = forms.ChoiceField(
widget = forms.Select(),
choices = CHOICES,
)
我不确定是否需要其他任何代码来解决此问题,但是当我将此表单呈现到模板中时,CHOICES的值将显示在选择字段下拉列表中。 我想要的是将键和值同时显示在下拉菜单中,同时仍与后端的键相等。 像这样:
Field:
--------------
| v|
--------------
--------------
|T1 - Thing 1|
|T2 - Thing 2|
--------------
有没有办法在forms.py代码中完成这种格式化?
最简单的方法可能是简单地动态创建一个不同的choices
列表 :
CHOICES = (
('T1', 'Thing 1'),
('T2', 'Thing 2')
)
class ExampleForm(forms.Form):
field = forms.ChoiceField(
widget = forms.Select(),
choices = [(k, '{} - {}'.format(k, v)) for k, v in CHOICES],
)
因此,在这里我们创建了第二个列表,其列表理解为 ,而不是('T1', 'Thing 1')
包含('T1', 'T1 - Thing 1')
作为项目。 我们不改变CHOICES
元组,我们只建立一个新的列表喂到ChoiceField
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.