Python Django形式选择题
我是Django的新手,如果你能给我一些指导,我将不胜感激。我正在尝试创建一个表单,允许用户勾选一个或多个选项。我知道我必须将multipleechoicefield字段与checkboxselectmultiplewidget一起使用,但Django文档没有提供关于此主题的示例。如果您能给我举个例子并解释我如何处理结果,我将不胜感激。例如,如果我有一个带有选项a b c d的表单,并且用户勾选了c和d。另外,如何指定选项(我不想使用db,我想的是字符串列表)?非常感谢希望这有帮助:DPython Django形式选择题,python,django,Python,Django,我是Django的新手,如果你能给我一些指导,我将不胜感激。我正在尝试创建一个表单,允许用户勾选一个或多个选项。我知道我必须将multipleechoicefield字段与checkboxselectmultiplewidget一起使用,但Django文档没有提供关于此主题的示例。如果您能给我举个例子并解释我如何处理结果,我将不胜感激。例如,如果我有一个带有选项a b c d的表单,并且用户勾选了c和d。另外,如何指定选项(我不想使用db,我想的是字符串列表)?非常感谢希望这有帮助:D from
from django import forms
class Test(forms.Form):
OPTIONS = (
("a", "A"),
("b", "B"),
)
name = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=OPTIONS)
forms.py
class SomeForm(forms.Form):
CHOICES = (('a','a'),
('b','b'),
('c','c'),
('d','d'),)
picked = forms.MultipleChoiceField(choices=CHOICES, widget=forms.CheckboxSelectMultiple())
views.py
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
picked = form.cleaned_data.get('picked')
# do something with your results
else:
form = SomeForm
return render_to_response('some_template.html', {'form':form },
context_instance=RequestContext(request))
一些_template.html
<form method='post'>
{{ form.as_p }}
<input type='submit' value='submit'>
</form>
在您的控制台中,您可以检查此项
非常感谢。这真的帮我解决了问题。我还有一个问题。当我尝试处理结果时,我会尝试将列表中的每个元素处理为u'a'还是仅处理字符串'a'。如何处理人类可读名称的列表?我需要获取tuple.initial\u values=['a',c']picked=forms.multiplechicefield(选项=choices,widget=forms.CheckboxSelectMultiple(),initial=initial\u values)的第二个选项列表。呈现的HTML是什么样子的?编辑表单时,如何使Django显示已保存/已选择的值?
[u'a', u'c']
from multiselectfield import MultiSelectField
# ...
MY_CHOICES = (('item_key1', 'Item title 1.1'),
('item_key2', 'Item title 1.2'),
('item_key3', 'Item title 1.3'),
('item_key4', 'Item title 1.4'),
('item_key5', 'Item title 1.5'))
MY_CHOICES2 = ((1, 'Item title 2.1'),
(2, 'Item title 2.2'),
(3, 'Item title 2.3'),
(4, 'Item title 2.4'),
(5, 'Item title 2.5'))
class MyModel(models.Model):
# .....
my_field = MultiSelectField(choices=MY_CHOICES)
my_field2 = MultiSelectField(choices=MY_CHOICES2,
max_choices=3,
max_length=3)