如何设置表单元素名称?

How to set form element name?

我有一个用 Flask 编写的 Web 应用程序,它使用 WTForms、SQLAlchemy 和相应的 Flask 扩展、Flask-SQLAlchemy、Flask-WTF 和 WTForms-Alchemy。

对于以下型号:

class User(db.Model, UserMixin):
    """
    Represents a registered user.

    @TODO Override setter for password so it is always encrypted.
    @TODO Add last_login column
    """

    __tablename__ = 'User'

    def __init__(self, username=None, password=None, email=None):
        self.username = username
        self.email = email
        self.password = encrypt(password)

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False, default=u'Anonymous Lifter')
    username = db.Column(db.String, nullable=False)
    password = db.Column(db.String, nullable=False)

我尝试通过以下方式创建表单:

class LoginForm(ModelForm):
    """ Form used to login a user that does not use social login. """
    class Meta:
        model = User
        only = [u'username', u'password']
        field_args = {u'password': {'widget': PasswordInput()}}
    remember_me = BooleanField(u'Remember me')

我的问题是,当我在页面上显示表单时,usernamepassword 都显示为小写。如何将他们的标签(?)/名称(?)设置为大写?

在模型中定义列时使用信息 属性。例如:

class User(db.Model, UserMixin):
    """
    Represents a registered user.

    @TODO Override setter for password so it is always encrypted.
    @TODO Add last_login column
    """

    __tablename__ = 'User'

    def __init__(self, username=None, password=None, email=None):
        self.username = username
        self.email = email
        self.password = encrypt(password)

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False, default=u'Anonymous Lifter', info={'label': 'Name'})
    username = db.Column(db.String, nullable=False, info={'label': 'Username'})
    password = db.Column(db.String, nullable=False, info={'label': 'Password'})

或者在定义表单时使用 field_args:

class LoginForm(ModelForm):
    """ Form used to login a user that does not use social login. """
    class Meta:
        model = User
        only = [u'username', u'password']
        field_args = {
            u'password': {
            'widget': PasswordInput(),
            'label': 'PASSWORD'
            },
            u'username': {'label': 'USERNAME'},
        }
    remember_me = BooleanField(u'Remember me')