django - 在分组查询集中包含没有记录的选择
问题描述
我正在尝试在 django 中按带有选项的字段进行分组查询。我想获得所有选择值,数据库中没有记录的算法选择。
我的模型:
CHOICES = (
('new', 'New'),
('in_process', 'In process'),
('finished', 'Finished')
)
class Task(models.Model):
...
status = models.CharField(max_length=10, choices=CHOICES)
我目前的查询是:
qs = Task.objects\
.values('status')\
.annotate(total=models.Count('status'))
此时,我只完成了数据库中的任务,但我想获取所有选择值,如果没有记录则为零。
任何想法?
解决方案
你可以这样做:
Task._meta.get_field('status').choices
模型字段上的选择仅在应用程序(Python)级别强制执行 - 数据库不知道哪些选择可用。
推荐阅读
- python - 无法将 SQL TEXT 与 Python 中的字符串进行比较
- javascript - Aws SDK 在 lambda 函数中
- javascript - 下面的输入如何输出为“失败”?
- c# - C# 在 if 之后抛出断言?
- excel - Application.ScreenUpdate 和 Shapes
- angular - 可以更改角度材料垫滑动切换图标吗?
- excel - Excel VBA 对象不支持此属性
- reactjs - React-Redux 如何改进 Reducers 文件中的代码
- selenium - 无法使用 maven 插件通过电子邮件发送测试报告
- kubernetes - kubernetes api: 禁止失败 403 pods: 用户 "system:serviceaccount:default:journalbeat" 无法列出 API 组 "" 中的资源 "pods"