Python 如何使用 Django 的表单框架来选择选项?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4788388/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How do I use Django's form framework for select options?
提问by TIMEX
http://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Select
http://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Select
Here, it says I can do SELECT widgets. But how do I do that? It doesn't show any example on how to write that field in python.
在这里,它说我可以做 SELECT 小部件。但是我该怎么做呢?它没有显示有关如何在 python 中编写该字段的任何示例。
<select>
<option>option 1</option>
<option>option 2</option>
</select>
采纳答案by Yuji 'Tomita' Tomita
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>
回答by errx
CHOICES= (
('ME', '1'),
('YOU', '2'),
('WE', '3'),
)
select = forms.CharField(widget=forms.Select(choices=CHOICES))
回答by ion-tichy
errx's solution was almost correct in my case, the following did work (django v1.7x):
errx 的解决方案在我的情况下几乎是正确的,以下确实有效(django v1.7x):
CHOICES= (
('1','ME'),
('2','YOU'),
('3','WE'),
)
select = forms.ChoiceField(widget=forms.Select, choices=CHOICES)
The elements inside CHOICES correspond to ($option_value,$option_text).
CHOICES 中的元素对应于 ($option_value,$option_text)。
回答by Siraj Alam
Django 2.0
Django 2.0
Options = [
('1', 'Hello'),
('2', 'World'),
]
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)
BTW tuple also works as same as list.
顺便说一句,元组也与列表相同。
Options = (
('1', 'Hello'),
('2', 'World'),
)
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)

