0

如何添加表單驗證並最好使用i18n本地化?我想是這樣不工作,需要進口Validationerror使用django進行表單驗證1.2 GAE

class AForm(djangoforms.ModelForm): 

    def clean_name(self): 
     value = self.data['name'] 

     if not value: 
     raise ValidationError("No name.") 
     return self.data['name'] 

    def clean_email(self): 
     pass 

如果我得到它的工作,我可以提出一個本地化的ValidationError下面這個?

ValidationError(_("No name.")) 

回答

2

我沒有使用過的谷歌應用程序引擎,所以進口的路徑很可能是錯誤的,但我已經與標準的Django之前使用的模式是:

from django import forms 
from django.utils.translation import ugettext_lazy as _ 

class AForm(forms.ModelForm): 

    def clean_name(self): 
     # Get the value from the cleaned data. 
     value = self.cleaned_data['name'] 

     # Check it exists. 
     if not value: 
      raise forms.ValidationError(_("No name.")) 

     # Return the (now validated) value. 
     return self.data['name'] 

進一步的信息,請參閱the docs on field validation

此外,我認爲您的實際應用程序比這更復雜 - 如果您只想檢查該字段是否已給定,請在該字段上設置the required attribute,然後Django會爲您執行此操作。

+0

謝謝!但是,即使我設置了必要的屬性,但恐怕它不適用於谷歌應用程序引擎。我想知道它是用GAE執行還是爲什麼不執行? – 2011-04-16 05:53:29