即使请求中不存在 self.data 中的键,也会获取错误值

Getting False value for a key in self.data even when it is not present in the request

我在 UI 中有 2 个单选按钮,一个用于设置变量 (ng-model) 说 selectedtrue (ng-value=true) 和另一个将其设置为 false (ng-value=false)。 Now, when none of them is selected it results in the variable selected being absent from the outgoing request (as expected).

但是,当处理 Django Forms 时,clean() 方法中的 the self.data 字典在访问 self.data.get('selected') / self.data['selected'] 时给出 False 为什么是这么?它不应该是 None 或至少在实际请求中甚至不存在时给出 key-error 吗?

请注意,变量 'selected' 实际上是具有 default=False 的 Django 模型中的一个字段,是否是该行为的原因?考虑到更改 Django 模型字段不是一个选项,我该如何避免这种情况?

所以前几天我通过检查原始 request.body 中的 selected 键来处理它。现在,由于它是一个字符串,我不得不将它解析为一个字典,然后使用 :

访问提到的键
json.loads(request.body).get('selected')

这样,如果在选择 none 个单选按钮时 selected 根本不存在,我会得到 None。同样,如果选择了 ng-value=true 的单选按钮,那么我会得到 True,反之亦然。