我是Django的新手,如果能夠爲我提供一些指導,我將非常感激。我正在嘗試創建一個允許用戶勾選一個或多個選項的表單。我明白我必須使用帶有CheckboxSelectMultiple小部件的MultipleChoiceField字段,但Django文檔沒有提供關於此主題的示例。如果你能給我一個例子並解釋我應該如何處理結果,我將不勝感激。例如,如果我有一個包含選項a b c d的表單,並且用戶選中c和d。另外我如何指定選項(我不想使用數據庫,字符串列表是我的想法)?非常感謝Django表單多項選擇
回答
希望這有助於:d
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))
some_template.html
<form method='post'>
{{ form.as_p }}
<input type='submit' value='submit'>
</form>
個
結果:
解釋:
選擇:
在每個元組的第一個元素是要存儲的 實際值。第二個 元素是 選項的人類可讀名稱。
讓選擇框:
form.cleaned_data.get('picked')
將導致 '實際價值' 的列表。舉例來說,如果我有print picked
取代# do something with your results
看到:
[u'a', u'c']
非常感謝..它真的爲我清理了一些東西。我還有一個問題。當我嘗試處理結果時,我會嘗試處理列表中的每個元素爲u'a'或只是字符串'a'。 – Bigdinrock 2011-04-21 17:52:58
這是一個非常好的答案!謝謝! – user1451340 2013-04-08 06:25:29
如何獲取人類可讀名稱列表?我需要列出第二個元組的選項。 – 2017-04-24 03:33:47
您可以檢查此https://pypi.python.org/pypi/django-multiselectfield/
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)
- 1. 簡單的列表項目多項選擇不選擇項目
- 2. 多項選擇取消訂閱表單
- 3. 表單選擇選項
- 4. CI - 幫助插入多個選擇表單,每個選擇表單有多個選擇的選項
- 5. 固定選項的多項選擇。沒有看到選項(Django)
- 6. 多項選擇菜單
- 7. Django的樣式表單中一個選項選擇
- 8. 在Django中提交表單後選擇保留選項
- 9. Django表單 - 選擇的選項基於GET請求URL參數
- 10. 在django表單數據中選擇選項?
- 11. django表單錯誤:「選擇不是可用選項之一」
- 12. 隱藏選擇多個項目Django
- 13. Django管理,限制附加項表單選擇列表
- 14. Django選擇選項選擇的問題
- 15. Django下拉選擇選項
- 16. Django的選擇選項
- 17. django模板選擇選項
- 18. 造型多選擇菜單選項
- 19. KnockoutJS - 選擇菜單多個選項
- 20. Django沒有從表單中保存多選選項
- 21. 軌道多表單選擇
- 22. 多選擇選項
- 23. 多個動態選擇選項列表
- 24. 單項選擇列表項不填充
- 25. 通過選擇多個Django中的表單域進行循環選擇
- 26. django表單給出:選擇一個有效的選項。該選擇不是可用選項之一
- 27. 選擇選項上的空表單擊
- 28. symfony2自定義表單選擇選項
- 29. Spring MVC 3.表單選擇選項
- 30. 安卓手錶選擇菜單選項?
怎樣使已經保存/選擇當值Django的顯示編輯表單? – YoYo 2017-01-07 15:55:45