【问题标题】:BadValueError: Expected boolBadValueError:预期的布尔值
【发布时间】:2017-02-26 11:31:35
【问题描述】:

我的表单元素是这样的复选框:

<input type="checkbox" class="form-check-input" name="opt_in">

该属性在模型中定义如下:

patient_optin = ndb.BooleanProperty()

当我在 AppEngine(local) 上运行代码并尝试将其放入数据存储区时,我收到此错误:

BadValueError: Expected bool, got u'on'

我需要如何转换这个值吗?

【问题讨论】:

    标签: google-app-engine google-cloud-datastore app-engine-ndb


    【解决方案1】:

    您只需要将字符串转换为布尔值。

    试试这个:

    patient.patient_optin = self.request.POST.get('opt_in') == 'on'
    

    【讨论】:

    • 但这不只是将其设置为'on',如果该人单击复选框以'off'怎么办?另外,如果我希望它使用值是/否或除开/关以外的其他值
    • 如果该人选择的值是'off',那么比较 self.request.POST['opt_in'] == 'on' 将是Falsecomparison 不会将任何内容设置为 'on'TrueFalse
    • 好的,我试过了,appengine 报错:opt_in = self.request.get("opt_in") == on NameError: global name 'on' is not defined
    • 那是因为你没有在on周围加上引号。
    • 抱歉,现在可以使用了,谢谢 :) 我忘记了 'on' 周围的引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多