亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django:無法驗證 MultipleChoiceField

Django:無法驗證 MultipleChoiceField

哆啦的時光機 2023-02-22 15:44:57
問題我的MultipleChoiceField. 我可以從CheckboxSelectMultiplemy 中的一個小部件中看到我的條目列表request.POST,但是當顯式調用該參數時,它只返回我的第一個條目。該表單也沒有驗證我收到的錯誤: 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']更奇怪的是,如果我調試到調用的斷點并在調試終端中if update_canister_form.is_valid():運行,它會返回True并且腳本會繼續。update_canister_form.is_valid()我想要的是我想驗證表單而不必復制和操作 request.POST 并將其簡單地傳遞到表單中并進行驗證。
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

問題源于包含test_cell在表單元字段內部。


class Meta:

        model= CanisterModel

        fields = ('test_cell','canister_type','canister_change_date','actual_conc',)

           #removed  --^

這將其從該模型字段的默認驗證中刪除。雖然我不明白這仍然無法驗證。如果有人知道請告訴我。


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號