python-3.x - Django - 选择 [列] AS
问题描述
我有以下代码:
MyModel.objects.values('foo','flu','fu').filter(part_of=pk)
这给了我以下字典:
{'foo': a, 'flu': b, 'fu': c}
该字典被序列化为 JSON 响应,如下所示:
JsonResponse(data, safe=False)
有没有办法可以'flu'
在保留值的同时将键重命名为某个东西?
到目前为止,我尝试过:
values[0]['new_flu'] = values[0].pop('flu')
我认为这是重命名字典键的常用 Python 方式,但这似乎没有效果,返回的 JSON 仍然包含'flu'
而不是new_flu
.
我觉得这可以通过 ALIAS 简单地解决,例如。 SELECT foo, flu AS new_flu, fu from ....
. 这个命令的 Django 替代方案是什么?还是有其他解决方案?
解决方案
其中一个选项是使用您需要的名称注释查询:
from django.models import F
MyModel.objects.filter(part_of=pk).annotate(new_flu=F('flu')).values('foo','new_flu','fu')
推荐阅读
- amp-story - 有没有一种方法可以在 amp 故事中创建用户交互内容?
- azure - IE11 和 Chrome 中的密码复杂度不一致
- firefox - 我在哪里可以找到 Firefox DevTools 的 CSS 类名的详尽列表?
- hyperledger - 如何控制资产中的日志值?在超级账本作曲家中?
- spring-boot - 为什么没有触发 Spring Boot AOP 切入点
- java - 相互依赖的表
- if-statement - 为什么 ada 中的 if 表达式和 if 语句,也适用于 case
- redux - 按下后退按钮后无法删除项目
- json - JSON.parse 错误 785 意外令牌错误
- c# - SqlDataReader 将 Binary(1) 列转换为 bool