gpt4 book ai didi

python - WTForms - 显示属性值而不是 HTML 字段

转载 作者:太空狗 更新时间:2023-10-30 00:37:16 25 4
gpt4 key购买 nike

我想重新使用我的 WTForms 表单模板:

<th>${form.name.label}</th>
<td>${form.name()}</td>
...

但是,在我的编辑页面上,我希望输入字段正常显示(TextFieldSelectField 等),而在我的 View 页面上,我只想显示属性的值,而不是具有值的输入字段。

编辑页面:

<th>Name:</th>
<td><input type="text" value="Current Name" name="name" id="name"/></td>

查看页面:

<th>Name:</th>
<td>Current Name</td>

我知道我可以通过 form.name.data 访问一个字段的值,但是有什么办法可以让我使用 form.name() 保留相同的模板吗?被调用并以某种方式切换是否输出 <input type="text"...Current Name

最佳答案

我创建了一个自定义小部件:

from wtforms.fields import Field

class PlainTextWidget(object):
def __call__(self, field, **kwargs):
return field.data if field.data else ''

然后,对于我的 View 页面,我添加了以下内容:

form = MyForm(obj=myDataRow)
fields = [val for val in form._fields]
for fieldName in fields:
fieldProp = getattr(form, fieldName)
setattr(fieldProp, 'widget', PlainTextWidget())

关于python - WTForms - 显示属性值而不是 HTML 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com