猿问

wtform 的 DateField 怎么显示中文提示

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”
这个怎么改成自定制中文的呢??


月关宝盒
浏览 1374回答 1
1回答

倚天杖

若要完全改写错误信息,可继承 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() 方法。
随时随地看视频慕课网APP

相关分类

Python
我要回答