問(wèn)題我的MultipleChoiceField. 我可以從CheckboxSelectMultiplemy 中的一個(gè)小部件中看到我的條目列表request.POST,但是當(dāng)顯式調(diào)用該參數(shù)時(shí),它只返回我的第一個(gè)條目。該表單也沒(méi)有驗(yàn)證我收到的錯(cuò)誤: File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\forms\forms.py", line 185, in is_valid return self.is_bound and not self.errors File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\forms\forms.py", line 180, in errors self.full_clean() File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\forms\forms.py", line 383, in full_clean self._post_clean() File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\forms\models.py", line 398, in _post_clean self.instance = construct_instance(self, self.instance, opts.fields, opts.exclude) File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\forms\models.py", line 60, in construct_instance f.save_form_data(instance, cleaned_data[f.name]) File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\db\models\fields\__init__.py", line 853, in save_form_data setattr(instance, self.name, data) File "C:\Users\lhepburn\Anaconda3\lib\site-packages\django\db\models\fields\related_descriptors.py", line 211, in __set__ self.field.remote_field.model._meta.object_name,ValueError: Cannot assign "['1', '2', '3']": "CanisterModel.test_cell" must be a "CellModel" instance.所以如果我打印request.POST我得到:<QueryDict: {'csrfmiddlewaretoken': ['9KwmPg1GzSXL98kjQbUHsvJGCIX3zNiBgqPbMPVtZtxYXKGnlZjreN9tDtDSdxiC'], 'test_cell': ['1', '2', '3'], 'canister_type': ['Total Hydrocarbons'], 'canister_change_date': ['07/07/2020'], 'time_field': ['12:30'], 'actual_conc': ['123']}>如果我打印request.POST['test_cell']我得到:'3'如果我打印request.POST.getlist('test_cell')我得到:['1', '2', '3']更奇怪的是,如果我調(diào)試到調(diào)用的斷點(diǎn)并在調(diào)試終端中if update_canister_form.is_valid():運(yùn)行,它會(huì)返回True并且腳本會(huì)繼續(xù)。update_canister_form.is_valid()我想要的是我想驗(yàn)證表單而不必復(fù)制和操作 request.POST 并將其簡(jiǎn)單地傳遞到表單中并進(jìn)行驗(yàn)證。
Django:無(wú)法驗(yàn)證 MultipleChoiceField
哆啦的時(shí)光機(jī)
2023-02-22 15:44:57