在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  網(wǎng)絡(luò)安全/ wtform 的 DateField 怎么顯示中文提示

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')   

請(qǐng)教:

渲染后頁面后
假如birthday填寫的不是時(shí)間格式的話,提示的是“Not a valid date value”
這個(gè)怎么改成自定制中文的呢??

回答
編輯回答
硬扛

若要完全改寫錯(cuò)誤信息,可繼承 DateField 并重寫 process_formdate() 方法,如

# -*- coding: utf-8 -*-
from wtforms import Form, DateField
from webob.multidict import MultiDict


class DemoDateField(DateField):
    def process_formdata(self, valuelist):
        try:
            DateField.process_formdata(self, valuelist)
        except ValueError:
            raise ValueError(u'自定義錯(cuò)誤信息')


class DemoForm(Form):
    day = DemoDateField('day')


form = DemoForm()
form.process(MultiDict(dict(day='abc')))
assert form.day.process_errors == [u'自定義錯(cuò)誤信息']

若只是翻譯英文錯(cuò)誤信息,應(yīng)修改 locale 設(shè)置,或繼承 DateField 并重寫 gettext() 方法。

2018年8月26日 22:50