2016-03-22 35 views
0

Flask'ta WTForms, SQLAlchemy ve ilgili Flask uzantıları, Flask-SQLAlchemy, Flask-WTF ve WTForms-Simya kullanan bir web uygulamasına sahibim. Aşağıdaki modeli içinForm öğesi adı nasıl ayarlanır?

:

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) 

Bir Form aşağıdaki şekilde oluşturmaya çalışın:

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

Sorunum benim sayfadaki formu görüntülediğinizde hem username ve password görünür olmasıdır düşük kasalı. Etiketlerini (?)/Adlarını (?) Büyük harflere nasıl ayarlayabilirim?

cevap

2

Modelinizde sütunlarınızı tanımlarken bilgi özelliğini kullanın.

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

Ya formunuzu tanımlarken field_args kullanın: Örneğin:

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

olsa formda bunu yapmak istiyor. – ruipacheco

İlgili konular