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

0 投票
1 回答
1625 浏览
提问于 2025-04-16 19:39

我在我的应用里有一个用来把地址转成地理坐标的表单。如果输入的内容不是一个地址,地理编码器就会报一个叫“GQueryError”的错误。我想用try/except来捕捉这个错误,然后给表单返回一个自定义的错误信息,这样它就能像其他错误一样显示在“错误列表”里,并且样式也能正确显示。这样做可以吗?

1 个回答

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

可以看看 如何清理特定字段

撰写回答