首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不返回值的HiddenField

不返回值的HiddenField
EN

Stack Overflow用户
提问于 2016-12-07 08:49:15
回答 1查看 682关注 0票数 1

我找不出为什么这段代码适用于StringField,但不适用于HiddenField。添加变量date2只是为了调试该问题。

(实际上,我可以把StringField留在那里,但我花了一段时间才发现问题所在,我想了解哪里出了问题,以免重蹈覆辙)

表格定义:

代码语言:javascript
复制
DAYS = 10
class _OneDayForm(Form):
    alarmtime = StringField(validators=[Optional(), validate_time])
    date2 = StringField()  # json encoded [Y,M,D]
    date = HiddenField()  # json encoded [Y,M,D]

class _PerDayForm(Form):
    days = FieldList(FormField(_OneDayForm), min_entries=DAYS)
    submit = SubmitField()

Jinja2模板:

代码语言:javascript
复制
    <input name="{{ subform.date.name }}" type="hidden" value="{{ ymd }}">
    <input name="{{ subform.date2.name }}" type="hidden" value="{{ ymd }}">

生成的HTML:

代码语言:javascript
复制
    <input name="days-0-date" type="hidden" value="[2016, 12, 7]">
    <input name="days-0-date2" type="hidden" value="[2016, 12, 7]">

StringField date2返回它的值,但HiddenField date不返回。我试着交换它们,以确保StringFieldHiddenField之间的唯一不同之处。

EN

回答 1

Stack Overflow用户

发布于 2016-12-09 16:48:10

为了记录在案,我发现了窃听器:

我使用{{ subform.hidden_tag() }}来显示CSRF令牌,但它所做的比这更多(而且我不知道):

如果窗体有多个隐藏字段,则可以使用hidden_tag()在一个块中呈现它们。

所以我的隐藏字段被渲染了两次,第一个没有价值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41012947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档