如何使用 Django 的表单框架来选择选项?
Posted
技术标签:
【中文标题】如何使用 Django 的表单框架来选择选项?【英文标题】:How do I use Django's form framework for select options? 【发布时间】:2011-06-14 20:59:47 【问题描述】:http://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Select
在这里,它说我可以做 SELECT 小部件。但是我该怎么做呢? 它没有显示任何关于如何在 python 中编写该字段的示例。
<select>
<option>option 1</option>
<option>option 2</option>
</select>
【问题讨论】:
【参考方案1】:Django 2.0
Options = [
('1', 'Hello'),
('2', 'World'),
]
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)
顺便说一句,元组也和列表一样工作。
Options = (
('1', 'Hello'),
('2', 'World'),
)
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)
【讨论】:
在 Django 2.1.15 中使用此格式时出现 TypeError,请搜索问题 #61037692【参考方案2】:errx 的解决方案在我的情况下几乎是正确的,以下确实有效(django v1.7x):
CHOICES= (
('1','ME'),
('2','YOU'),
('3','WE'),
)
select = forms.ChoiceField(widget=forms.Select, choices=CHOICES)
CHOICES里面的元素对应($option_value,$option_text)。
【讨论】:
【参考方案3】:class MyForm(forms.Form):
CHOICES = (('Option 1', 'Option 1'),('Option 2', 'Option 2'),)
field = forms.ChoiceField(choices=CHOICES)
print MyForm().as_p()
# out: <p><label for="id_field">Field:</label> <select name="field" id="id_field">\n<option value="Option 1">Option 1</option>\n<option value="Option 2">Option 2</option>\n</select></p>
【讨论】:
它说:__init__() 得到了一个意外的关键字参数“选择” 选项应该在小部件构造函数中定义 感谢您修复它 TIMEX :P【参考方案4】:CHOICES= (
('ME', '1'),
('YOU', '2'),
('WE', '3'),
)
select = forms.CharField(widget=forms.Select(choices=CHOICES))
【讨论】:
以上是关于如何使用 Django 的表单框架来选择选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 html 表单更新基于 django 模型的表单(具有选择选项)记录