如何添加表单验证,最好是使用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."))
答案 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将为您执行此操作。