模型验证并以Django的形式捕获错误

时间:2014-12-29 10:24:55

标签: python django django-templates

我想在模型类中编写模型验证,而不是在ModelForm中编写,以便DRY。

我设法做到了这一点,但当我提升ValidationError时,django.forms.ValidationErrordjango.core.exception.ValidationError会打破页面。

如何在不破坏页面的情况下显示错误消息。

1 个答案:

答案 0 :(得分:0)

我相信模型的验证是在保存时完成的,所以如果你在视图中有这样的东西

if form.is_valid():
    obj = form.save()

将其更改为:

if form.is_valid():
    obj = form.save(commit=False)
    try:
        obj.save()
    except ValidationError as e:
        # i.e. Add error message from e to form
        pass
    else:
        return http.HttpResponseRedirect('.')