Unidentified Errors.Please notify错误而不是我的简单form.ValidationError

时间:2011-09-30 16:25:06

标签: python django django-forms

好的,尝试在Django中向ModelForm添加一个干净的方法。我正在添加一个简单的加注语句,只是为了看它是否有效,而不是我的信息,我得到“未识别的错误。请通知......”

这是我的(简单)测试:

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”的引用。在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您的clean方法是否返回cleaning_data?如果你看一下这里的文档:

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

答案 1 :(得分:0)

我强烈使用清洁模型方法。

您应该在NON_FIELD_ERRORS上搜索错误:

在模板上:

{% if form.non_field_errors %}
   <ul>
      {% for error in form.non_field_errors %}
       <li> {{error}} </li>
      {% endfor %}
   </ul>
{% endif %}  

代码:

form._errors.[NON_FIELD_ERRORS]

Here you can learn about how to move business rules from forms to model