WTForms - 如何预填充文本区域字段?
你好,我一直在尝试用一些东西预先填充一个文本区域的内容,就像在模板中这样。
{{form.content(value="please type content")}}
这个方法在文本框中有效,因为HTML允许给<input type="text">
设置值,但在文本区域中就不行了……有人能帮我解决这个问题吗?
9 个回答
20
我最近也遇到了同样的问题,我是这样解决的:
{% set f = form.content.process_data("please type content") %}
{{ form.content() }}
你可以试着运行下面的代码片段来测试一下:
>>> import wtforms
>>> import jinja2
>>> from wtforms.fields import TextAreaField
>>> class MyForm(wtforms.Form):
... content = TextAreaField("Text Area")
...
>>> t = jinja2.Template("""{% set f = form.content.process_data("please type content") %}
... {{ form.content() }}""")
>>>
>>> t.render(form=MyForm())
u'\n <textarea id="content" name="content">please type content</textarea>'
38
你可以在渲染之前这样做,类似于:
form.content.data = 'please type content'
不过我对WTForms还很陌生。
21
对于 textarea
这种输入框,你可以在创建字段的时候,用 default
这个参数来设置默认内容。
class YourForm(Form):
your_text_area = TextAreaField("TextArea", default="please add content")
然后在你显示这个输入框的时候:
{{form.content()}}
WTForms 会显示你设置的默认文本。不过,我还没有找到在显示的时候指定文本框默认内容的方法。