来自Django视图中的try / except的自定义字段错误?

时间:2011-06-15 22:44:30

标签: python django django-forms geopy

我有一个用于在我的应用中对地址进行地理编码的表单。如果输入了非地址,则地理编码器会引发“GQueryError”。使用try / except我想捕获此错误并将自定义错误发送回将出现在“错误列表”中的表单,就像其他错误一样,并适当地显示和设置样式。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

您应该编写一个clean_field_name方法并在其中捕获错误并引发ValidationError例如

class MyForm(forms.Form):
    ...
    # rest of the form
    ...

    def clean_address(self):
        address = self.cleaned_data['address']
        try:
            address = geo_clean(address)
        except GQueryError,e:
            raise forms.ValidationError("ooops you are so wrong, %s!"%e)

        return address

阅读how to clean specific fields