代码之家  ›  专栏  ›  技术社区  ›  ruipacheco

如何设置表单元素名称?

  •  0
  • ruipacheco  · 技术社区  · 9 年前

    我有一个用Flask编写的web应用程序,它使用WTForms、SQLAlchemy和相应的Flask扩展,Flask SQLAlchemi、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')
    

    我的问题是,当我在页面上显示表单时 username password 显示为小写。如何设置标签(?)/姓名(?)到大写?

    1 回复  |  直到 9 年前
        1
  •  2
  •   pjcunningham    9 年前

    在模型中定义列时,请使用info属性。例如:

    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')
    
    推荐文章