class RegisterForm(Form):
name = simple.StringField( label='用戶名', validators=[
validators.DataRequired(message='用戶名不能為空')
],
widget=widgets.TextInput(),
render_kw={'class': 'form-control'},
)
birthday = core.DateField(label='出生日期', format='%Y-%m-%d')請教:渲染后頁面后假如birthday填寫的不是時間格式的話,提示的是“Not a valid date value”這個怎么改成自定制中文的呢??
1 回答

倚天杖
TA貢獻1828條經驗 獲得超3個贊
若要完全改寫錯誤信息,可繼承 DateField 并重寫 process_formdate() 方法,如
# -*- coding: utf-8 -*-from wtforms import Form, DateFieldfrom webob.multidict import MultiDictclass DemoDateField(DateField): def process_formdata(self, valuelist): try: DateField.process_formdata(self, valuelist) except ValueError: raise ValueError(u'自定義錯誤信息')class DemoForm(Form): day = DemoDateField('day') form = DemoForm() form.process(MultiDict(dict(day='abc')))assert form.day.process_errors == [u'自定義錯誤信息']
若只是翻譯英文錯誤信息,應修改 locale 設置,或繼承 DateField 并重寫 gettext() 方法。
添加回答
舉報
0/150
提交
取消