【问题标题】:Python: Wtforms in pypugjs radio field doesn't work correctlyPython:pypugjs 无线电字段中的 Wtforms 无法正常工作
【发布时间】:2017-12-21 08:59:10
【问题描述】:

我正在使用 wtforms 构建一个表单。 有一个无线电场。这是它的数据:

[(0, 'Active'),(1, 'Inactive'),]

我在 pypugjs 中渲染字段:

input(type='radio', name=key, value=option_key, checked=(record_data[key]==option_key))=option_value

提交后,我收到Not a valid choice 错误。 但是在将选择更改为字符串值 (1->'1')

[('0', 'Active'),('1', 'Inactive'),]

现在它可以与 Wtforms 验证一起使用,所以这意味着我必须在 RadioField 中使用字符串作为单选值?

然后有新的麻烦:我无法检查 pypugjs 字段 即使在使用条件检查相等值之后

if record_data[key]==option_key
    |matched

即使|#{record_data[key]}-#{option_key}- 的结果是1-1- 也不起作用

所以这意味着 pypugjs 不匹配两个相同的值,因为一个是整数,一个是字符串?!

如何让它发挥作用?

【问题讨论】:

    标签: python validation pug wtforms


    【解决方案1】:

    RadioField 类采用 coerce 参数,该参数定义了一个函数,该函数应用于 POST 请求中收到的值。 RadioField 的默认 coerce 函数是 unicode,因此该字段的值是一个字符串,但您可以使用 int 代替,以便获得一个整数。

    class Foo(wtforms.Form):
    
        bar = wtforms.RadioField(coerce=int, choices=[(0, 'active'), (1, 'inactive')])
    

    【讨论】:

      猜你喜欢
      • 2017-11-08
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多