Python django如何在单个字典中获取状态计数
在我的用户表中,我有许多用户类型和状态(pending=0,1)= 批准)。我得到了这样的计数 使用此方法,我得到如下结果: {'pending':0',approved':1',blocked':0} 实际上我需要的是我希望通过一个查询得到相同的结果,任何人都能帮我联系一下吗??提前谢谢 你可以Python django如何在单个字典中获取状态计数,python,django,python-3.x,django-admin,Python,Django,Python 3.x,Django Admin,在我的用户表中,我有许多用户类型和状态(pending=0,1)= 批准)。我得到了这样的计数 使用此方法,我得到如下结果: {'pending':0',approved':1',blocked':0} 实际上我需要的是我希望通过一个查询得到相同的结果,任何人都能帮我联系一下吗??提前谢谢 你可以 结果将是一个带有状态和计数字段的查询集 然后,我们从QuerySet创建一个dict,然后我们重命名键以获得所需的字典。任何与此相关的建议??hi@narendra通过此操作,我得到的结果如下:但我想
结果
将是一个带有状态
和计数
字段的查询集
然后,我们从
QuerySet
创建一个dict
,然后我们重命名键以获得所需的字典。任何与此相关的建议??hi@narendra通过此操作,我得到的结果如下:但我想要的结果如下:pendingcount=0,approvedcount=1way@Himani请检查更新的答案。添加了替换键的代码。我尝试了以下操作---result=User.objects.filter(type=3,status\u in=[0,2,4])。value('status')。order\u by('status')。annotate(count=count('status'))new\u key={0':'pending',2':'approved',4':'blocked}result\u with\u new key={new key[键]:键的值,result.items()}打印(带有新键的结果),但它返回了错误:AttributeError:'QuerySet'对象没有属性'items'@Himani my bad,没有意识到添加过滤器将返回QuerySet
,而不是dict
。
user = {}
user['pending'] = User.objects.filter(type=3,status='0').count()
user['approved'] = User.objects.filter(type=3,status='2').count()
user['blocked'] = User.objects.filter(type=3,status='4').count()
print(user)
from django.db.models import Count
result = User.objects.filter(type=3, status__in=[0, 2, 4]).values('status')
.order_by('status')
.annotate(count=Count('status'))
# create dict
result_dict = {r.status : r.count for r in result}
# rename keys of dict
new_keys= {'0':'pending', '2':'approved', '4':'blocked'}
result_with_new_keys = {new_keys[key] : value for key, value in result.items()}