使用django 1.2 GAE进行表单验证

时间:2011-04-16 00:30:39

标签: python google-app-engine django-models localization django-forms

如何添加表单验证,最好是使用i18n本地化?我尝试了类似下面的东西,它不起作用,需要导入Validationerror

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."))

1 个答案:

答案 0 :(得分:2)

我没有使用Google应用引擎,因此导入路径可能不对,但我之前使用标准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将为您执行此操作。