2017-07-27 35 views
0

我在嘗試驗證使用QueryDict實例化的基本ModelForm時遇到了問題。表單有一個字段「名稱」,當它通過form.cleaned_data時,它的值將被刪除,即使我提交了「abc」這樣的名稱。因此,我無法驗證表單。我對Django有點習慣,這是我第一次面對這樣的問題。爲什麼表單驗證會刪除一個簡單的字符串?

下面是我認爲的相應的行。

elif elem_type == 'AP': 
     form = ApplicabiliteForm(QueryDict(request.POST.get('form')), prefix='AP') 

什麼是真正奇怪的是,我可以看到「ABC」在形式上[「數據」],我已經檢查,如果它不是分/ MAX_LENGTH的問題,或者這種事情。而且,當我在調試器中嘗試ApplicabiliteForm(QueryDict(request.POST.get('form')), prefix='AP').is_valid()時,它返回true。

任何幫助將不勝感激,它實際上是我的心!提前致謝。

+0

它作爲JSON字符串提交,因此它將表單反序列化。 –

回答

0

檢查form.data顯示{'name': 'abc'}因爲這是您傳入的數據。這並不意味着它是正確的密鑰。

如果表格有prefix='AP', then the key for the name field should be 'AP-name', not名稱。

最後,如果不需要name領域,AP-name丟失,那麼字段值將被設置爲''和形式將仍然有效。

+0

上帝,我覺得很愚蠢,我忘了在我的表單實例中包含前綴。謝謝 ! –