2011-09-30 20 views
0

好的,試圖添加一個乾淨的方法在Django的ModelForm。我添加一個簡單的raise語句只是爲了看看它的工作原理,以及代替我的消息,我得到身份不明的錯誤。請通知...錯誤,而不是我的簡單forms.ValidationError

這裏是我的(簡單)測試「不明錯誤,請通知......」:

class ConfigurationForm(forms.ModelForm): 
    ... 

    def clean(self): 
     cleaned_data = self.cleaned_data 
     typeid = cleaned_data.get("typeid") 
     value = cleaned_data.get("value") 

     if value and typeid: 
      raise forms.ValidationError("this is the error")   

我甚至無法在django代碼庫的任何地方找到對「Unidentified Errors」的引用。在此先感謝您的幫助。

+0

您還沒有添加方法。看看https://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-a-specific-field-attribute –

+0

對不起 - 編輯我的代碼來反映它。 – proffrink

+0

餡餅:是的,我看過那裏...這是我的代碼有效地來自哪裏。看起來很簡單。 – proffrink

回答

0

你乾淨的方法返回的清潔數據?如果你看看這裏的文檔:

https://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other

你會發現,你必須確保返回self.cleaned_data。此外,不要提出驗證錯誤;代替(再次,因爲你必須回到它)刪除數據無效域

所以:

def clean(self): 
    typeid = cleaned_data.get("typeid", False) 
    value = cleaned_data.get("value", False) 
    if value and typeid: 
     self._errors["typeid"] = self.error_class(["Some error has happened"]) 
     del(self.cleaned_data['typeid']) 
    return self.cleaned_data 
+0

原來我錯過了其他地方的東西.​​.....模板是確切的(我沒有捕獲non_field_errors這個具體的錯誤)。不管怎樣,謝謝! – proffrink