2
迄今爲止所見到的所有答案都讓我困惑。在django中處理動態MultipleChoiceField
我製作了一個窗體,它根據傳入的參數以及存儲在數據庫中的問題動態構建。這一切工作正常(注意:它不是一個ModelForm,只是一個表單)。
現在我試圖保存用戶的回覆。我如何迭代他們提交的數據,以便我可以保存它?
MultipleChoiceFields尤其令我困惑。我將它們定義爲:
self.fields['question_' + str(question.id)] = forms.MultipleChoiceField(
label=mark_safe(required_tag +
question.label + "<br/>Choose any of the following answers"),
help_text=question.description,
required=question.required,
choices=choices,
widget=widgets.CheckboxSelectMultiple())
當我選擇幾個選項,實際公佈的數據是這樣的:
question_1=5&question_1=6
會自動的Django意識到這些是相同的表格上這兩個選項,讓我訪問一個可迭代的地方?我會做這樣的事情:
for field in self.cleaned_data:
print field # save the user's response somehow
但是,這並不工作,因爲這隻會返回question_1
一次,即使有兩個提交的值。
答:for循環現在將按預期如果我遍歷的self.fields
代替self.cleaned_data
:
for field in self.fields:
print self.cleaned_data[field]
啊是的,它確實有效。我需要做一些調整。謝謝 - 不知道我是否正朝着正確的方向前進。 – Roger 2010-08-21 13:46:16
當我在multipart/form-data表單中使用多項選擇時會發生什麼? cleared_data返回無! :( – 2017-05-26 03:11:32