如果value = false(缺少字段),则无法验证布尔字段

时间:2016-08-06 03:42:55

标签: python django django-forms

我无法仅使用布尔字段值“false”验证POST数据,这适用于“true”。我已经尝试强制'0','False'和'false'但是is_valid()方法返回false,错误“此字段是必需的”。

我的帖子数据字典是:

<QueryDict: {u'vote': [u'false'], u'csrfmiddlewaretoken': [u'l3RlmeHDnv7Y5aQiNJoadLUZDsiOFUI'], u'id': [u'40']}>

如果我为此字段发布'true'值,则QueryDict完全相同,只是'false'正在改变。

我试图转换为str而不是unicode dict,但它不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果我正确理解你的问题,你需要将字符串的输入解析为bool值。以下内容:bool('false')bool('true')将始终返回True,因为它们分别隐含def to_bool(s): return s.lower() == 'true'

d = {u'vote': [u'false']}
print to_bool(d['vote'][0]) 
>>> False

示例输出:

{{1}}

答案 1 :(得分:0)

解决: 使用NullBooleanField而不是BooleanField ...