Azi*_*ari 5 django django-orm django-aggregation
考虑以下:
status = queryset.values('status').annotate(count=Count('status'))
Run Code Online (Sandbox Code Playgroud)
其中statusfield 是CharFieldwith choices。这将产生一个包含status数据库值及其计数的字典列表。
有没有办法聚合status并显示其显示值?我已经查找了我可能可以模拟的代码_get_FIELD_display,但重复框架的内部代码感觉有点黑客。
如果不破解 SQL,您可能无法在数据库级别轻松实现这一目标。但是,由于get_FOO_display在级别上操作Model,您甚至不必_get_FIELD_display手动修改或查找选择(如果以下方法不会花费您的服务器太多费用):
YourModel(status=status).get_status_display()
Run Code Online (Sandbox Code Playgroud)
因此
for s in queryset.values('status').annotate(count=Count('status')):
print(queryset.model(status=s['status']).get_status_display())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1884 次 |
| 最近记录: |