2016-03-22 17 views
0

私は、WTForms、SQLAlchemyとそれに対応するFlask拡張機能、Flask-SQLAlchemy、Flask-WTF、WTForms-Alchemyを使用するFlaskで書かれたWebアプリケーションを持っています。フォーム要素名の設定方法は?

次のモデルの場合:

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の両方が表示されるということです小文字。どのようにラベル(?)/名前(?)を大文字に設定できますか?

答えて

2

モデルで列を定義するときに、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') 
+0

でも、私は、フォーム上でこれをやってみたいです。 – ruipacheco

関連する問題