2011-06-15 83 views
0

我有一個表單用於在我的應用中對地址進行地址解析。如果輸入了非地址,地理編碼器將引發「GQueryError」。使用try /除了我想要捕獲這個錯誤,並將自定義錯誤發回到將出現在「錯誤列表」中的表單,就像其他錯誤一樣,並被適當地顯示和設置。這可以做到嗎?自定義字段錯誤嘗試/除了在Django視圖?

回答

0

你應該寫一個clean_field_name方法和它捕獲錯誤,並提出一個ValidationError e.g

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