我想传递一个str用作表单提示。我认为这很简单,但事实证明很难。
这是我的代码:
class PostForm(FlaskForm):
post = TextAreaField(Question, validators=[DataRequired()])
submit = SubmitField('Submit')`
然后
form = PostForm('my question')
相应的html
{{ wtf.quick_form(form) }}
答案 0 :(得分:1)
今天,我发现了一个与您类似的问题。我想将变量传递给FlaskForm
。对于一个小型的简历创建应用程序,我想给用户一个机会来为其工作经历创建多个条目,而我想使用FieldList
和FormField
来完成。而且我需要以一种形式在一页上完成它。
我的解决方案是表单的工厂模式的非常简单的python实现:
class ConstructorForm(FlaskForm):
...
work_experience_form = FieldList(FormField(WorkExperienceForm), min_entries=1, max_entries=1)
skills_form = FieldList(FormField(SkillsForm), min_entries=1, max_entries=1)
...
这是我构建扩展表单的功能:
def constructor_form(work_experience_forms=1, skills_forms=1):
class _ConstructorForm(ConstructorForm):
pass
_ConstructorForm.work_experience_form = FieldList(
FormField(WorkExperienceForm), min_entries=work_experience_forms, max_entries=work_experience_forms
)
_ConstructorForm.skills_form = FieldList(
FormField(SkillsForm), min_entries=skills_forms, max_entries=skills_forms
)
return _ConstructorForm()
答案 1 :(得分:0)
因此,我仍然没有这个问题的答案,但是我确实设法提出了一个解决方案。
class PostForm(FlaskForm):
post = TextAreaField(_l('This no longer matters'), validators=[DataRequired()])
submit = SubmitField(_l('Submit'))
然后在路线上
from wtforms.fields.core import Label
form = PostForm()
form.post.label = Label("post", 'Real question goes here')}
对此的解释是,TextAreaField在帖子上创建了一个可访问和可更改的标签属性,但需要正确地将其设置为wtforms.fields.core中的Label对象格式。 (仅将其重新分配为字符串是行不通的)。该对象的表示形式是:
<label for="post">Real question goes here</label>
它是类型
<class 'wtforms.fields.core.Label'>