问题描述
|
如何添加表单验证,最好添加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.\"))
解决方法
我没有使用过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\']
有关更多信息,请参阅有关字段验证的文档。
另外,我假设您的实际应用程序比这更复杂-如果您只想检查字段是否已指定,请在该字段上设置必填属性,而Django将为您完成此操作。