如何使用WTForms-Alchemy添加文本字段占位符

时间:2019-12-14 14:18:13

标签: python flask flask-sqlalchemy flask-wtforms

我目前正在使用WTForms-Alchemy为我的数据库模型创建表单。

我的User.py看起来像这样:

class User(UserMixin, db.Model, CreationDateMixin):
   __tablename__ = 'user'

   id = db.Column(db.Integer, primary_key=True)
   first_name = db.Column(db.String(50), info={
      'label': 'Firstname',
      'validators': validators.Length(min=3)
   })

对于模型,我使用WTForms-alchemy定义了一个表单:

class EditProfileForm(ModelForm, FlaskForm):
   class Meta:
      model = User

   submit = SubmitField("Update")

我正在像这样的Jinja2模板文件中使用表单:

{{ form.short_name }}

是否可以为User.py类中的文本输入定义占位符?我已经尝试过在信息块中添加参数“占位符”,但这没用。

1 个答案:

答案 0 :(得分:0)

WTForms有一个参数render_kw,它是一个字典,它描述要传递给表单对象的渲染小部件的参数。 [https://wtforms.readthedocs.io/en/stable/fields.html#the-field-base-class]

info参数是传递给WTForms函数的参数的字典,因此解决方案是传递另一个dict的字典:

class User(UserMixin, db.Model, CreationDateMixin):
   __tablename__ = 'user'

   id = db.Column(db.Integer, primary_key=True)
   first_name = db.Column(db.String(50), info={
      'label': 'Firstname',
      'validators': validators.Length(min=3),
      'render_kw': {'placeholder': 'FIRST NAME'}
   })