考虑以下:
status = queryset.values('status').annotate(count=Count('status'))
哪里
status
字段是 CharField
与 choices
.这将产生一个带有 status
的字典列表。 DB 值及其计数。有没有办法聚合
status
并显示其显示值?我查了_get_FIELD_display
的代码我可能可以效仿,但重复框架的内部代码感觉有点hackish。
最佳答案
如果不破解 SQL,您可能无法在 DB 级别轻松实现这一点。但是,由于 get_FOO_display
运作于 Model
级别,您甚至不必破解 _get_FIELD_display
或手动查找选项(如果以下方法不会使您的服务器花费太多):
YourModel(status=status).get_status_display()
因此
for s in queryset.values('status').annotate(count=Count('status')):
print(queryset.model(status=s['status']).get_status_display())
关于Django - 使用 get_FOO_display 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25060594/