【问题标题】:WTForm BooleanField and defaultWTForm BooleanField 和默认值
【发布时间】:2020-01-02 02:45:39
【问题描述】:

我有这个:

force_email = BooleanField('force_email', widget=HiddenInput(), default=False)

我希望在 HTML 模板中将值设为 false,但我得到了

input id="force_email" name="force_email" type="hidden" value="y"

我查看了库的代码并阅读了一些东西(覆盖、formdata 的东西……很多东西),但我仍然不知道如何将该字段设置为 False,我检查了https://github.com/wtforms/wtforms/blob/master/wtforms/fields/core.py#L712 并尝试通过 BooleanField 设置 raw_data 但它不起作用,因为我可能在错误的地方......

我没有想法......有人遇到过这种情况吗?我做错了吗?

【问题讨论】:

  • 曾尝试在您的视图文件force_email.default = False 中执行此操作吗?如果不起作用,试试这个form = formObject(force_email=Flase)
  • 我会试一试,尽管我更喜欢将所有内容都保存在表单文件中(这就是我摆脱布尔字段并直接使用隐藏字段的原因)
  • @odaialghamdi 不幸的是它根本不起作用,我会坚持使用 force_email = HiddenField('force_email', default='false') 因为它工作正常

标签: html python-3.x flask-wtforms


【解决方案1】:

在特定情况下我遇到了同样的问题。由于我的分页链接,我使用field=False 调用API。我必须调整 Field 的 false_values 参数,以便将字符串 'False' 视为 False 值,参见。 documentation here。在你的例子中:

force_email = BooleanField('force_email', widget=HiddenInput(), default=False,
                      false_values=('False', 'false', ''))

【讨论】:

    猜你喜欢
    • 2015-05-05
    • 2011-07-08
    • 1970-01-01
    • 2016-11-29
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    相关资源
    最近更新 更多