WTForms-如何预填充文本区域字段?
嗨,我一直在尝试使用某些东西来填充文本区域字段 就像模板中这样。
{{form.content(value="please type content")}}
当字段是文本字段时,这有效,主要是因为 html 接受 的值 但同样不适用于文本区域...... 有人可以帮我解决这个问题吗?
Hi I have been trying to pepopulate a textareafield using something
like this in the template.
{{form.content(value="please type content")}}
This works when the field is textfield primarily because the html
accepts value for <input type="text">
but the same does not work for textarea...
Can someone please help me with this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
您可以在渲染之前执行此操作,例如:
不过,我是 WTForms 的新手。
You can do it before rendering, something like:
I'm new to WTForms though.
对于
textarea
小部件,您可以在字段构造函数中使用default
参数设置默认内容。然后,当您渲染时:
WTForms 将渲染默认文本。我无法找到一种方法来在渲染时指定文本区域的默认文本。
For
textarea
widgets, you set the default content with thedefault
argument in your field constructors.Then when you render:
WTForms will render the default text. I have not been able to find a way to specify default text for the text area at render time.
我最近遇到了同样的问题,我是这样解决的:
对于测试,您可以尝试运行以下代码片段:
I recently had the same problem, I solved it like this:
For a test, you can try run the follow snippet:
对于那些尝试在 jinja 模板中动态执行此操作的人来说,在渲染之前设置默认值并不能解决此问题。
不使用 WTForms 标准:
您可以使用原始 HTML 构造此元素,例如:
...并且它仍然可以与您的 WTForms 验证一起使用。
希望这对某人有帮助:)
For those trying to do this dynamically in jinja template, setting the default value prior to rendering does not fix this problem.
Instead of using the WTForms standard:
You can construct this element with raw HTML like:
...and it will still work with your WTForms validation.
Hope this helps someone :)
爱丽丝,表单小部件中似乎内置了支持来完成您要做的事情,但您是对的,它目前不起作用。
肖恩和希尔奎斯发布了确实有效的体面工作环境。这是你可以尝试的形式(yuk yuk)
Alice there seems to be support built into the form widget to do what you are after but you are right it doesn't work at the moment.
Sean and hilquias post decent work arounds which do work. This is the form (yuk yuk) you might try
使用
TextArea
字段定义表单在渲染模板之前设置文本区域内容
在模板中渲染字段
Define your form with the
TextArea
fieldSet the textarea content before rending the template
Render the fields in your template
该线程有点旧,但如果您需要使用动态内容预填充 textarea 字段,您可以使用 setattr 和 default 参数,如下所示:
不要忘记导入 TextAreaField。
This thread is a bit old but if you need to prepopulate the textarea field with dynamic content, you could use setattr and the default parameter like so:
Don't forget to import TextAreaField.
您还可以通过将文本区域字段传递到 render_template 中的 WTforms 类实例化来预填充文本区域字段(在本示例中,我使用 Flask 框架):
因此,comments=prospect.comments 表示“在 TextAreaField 名为 'comments' 的字段到前景.comments 中包含的数据"
You can also pre-populate a textarea field by passing it in to your WTforms class instantiation in render_template (in this example I'm using the Flask framework):
So, comments=prospect.comments says "set the text inside the TextAreaField field named 'comments' to the data contained in prospect.comments"
在 Textarea 中,如果使用 jquery,则需要使用 innerHTML 或 html()。
在您的上下文中应该是:
希望有帮助。
In a Textarea you will need to use innerHTML or html() if you use jquery.
in your context should be:
Hope it helps.