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