django - 为 self.data 中的键获取 False 值,即使它不存在于请求中
问题描述
我在 UI 中有 2 个单选按钮,一个用于将变量 (ng-model) 设置selected
为true
(ng-value=true),另一个用于将其设置为false
(ng-value=false)。现在,当没有选择它们时,会导致selected
传出请求中缺少变量(如预期的那样)。
但是,当处理 Django Forms 时,方法the self.data
中的字典会提供访问/为什么会这样?当它甚至不存在于实际请求中时,它不应该是或至少给出一个吗?clean()
False
self.data.get('selected')
self.data['selected']
None
key-error
请注意,变量 'selected' 实际上是 Django 模型中的一个字段default=False
,它是造成这种行为的原因吗?考虑到更改 Django Model 字段不是一种选择,我该如何规避这种情况?
解决方案
selected
所以前几天我通过检查raw中的密钥来处理它request.body
。现在,由于它是一个字符串,我必须将其解析为一个字典,然后使用以下命令访问提到的键:
json.loads(request.body).get('selected')
这样,如果selected
在没有选择任何单选按钮时根本不存在,我得到None
. 同样,如果ng-value=true
选择了单选按钮,则我得到True
,反之亦然。
推荐阅读
- python - Python删除具有布尔索引的矩阵行,如matlab
- vsto - 当我们将幻灯片粘贴到新演示文稿时,幻灯片格式发生了变化
- gruntjs - 使用注释生成的 Component-preload.js
- javascript - Map.forEach,为什么删除循环中的项目有效?
- java - java.io.FileNotFoundException: /home/ec2-user/src/main/resources/keystore.jks (没有这样的文件或目录)
- php - 是否可以在 php for-loop 中使用 LAST_INSERT_ID() ?
- python - Apache/Wsgi - 在 CentOS 上从本地环境切换到 virtualenv 时出现问题
- amazon-ec2 - 从 ec2 实例连接 dynamodb 需要哪个 IAM 角色?
- c# - Quartz.net 3.4 - global.asax 中的开始工作不会触发
- javascript - 在加载时进行 jquery keyup 计算的最佳有效方法