如何访问 .value() 查询集结果的键
How to access to a key of a result of .value() queryset
我有这个查询集:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values('respuesta').annotate(Count('respuesta'))
结果是这样的:
[{'respuesta__count': 2, 'respuesta': u'Una vez'}]
我只需要访问 respuesta__count
或 respuesta
键,我的意思是,只需要 2
或 "Una vez"
最终将它传递给模板,怎么可能我做到了吗?
您正在寻找 values_list
p = RespuestaPreguntaSeleccionMultiple.objects.all().values_list(
'respuesta').annotate(Count('respuesta'))
它将 return 的值设为 [('Una vez', 2)]
编辑:
所以您似乎希望每个值都有两个列表。如果是这样,那么您可以这样做:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values_list(
'respuesta').annotate(Count('respuesta'))
respuesta_set, counts = zip(*p)
在这种情况下,respuesta_set
将等于 ['Una vez']
,counts
将等于 [2]
。
您需要遍历结果列表:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values('respuesta').annotate(Count('respuesta'))
for item in p:
item['respuesta__count'] # This will return 2
item['respuesta'] # This will return 'Una vez'
我有这个查询集:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values('respuesta').annotate(Count('respuesta'))
结果是这样的:
[{'respuesta__count': 2, 'respuesta': u'Una vez'}]
我只需要访问 respuesta__count
或 respuesta
键,我的意思是,只需要 2
或 "Una vez"
最终将它传递给模板,怎么可能我做到了吗?
您正在寻找 values_list
p = RespuestaPreguntaSeleccionMultiple.objects.all().values_list(
'respuesta').annotate(Count('respuesta'))
它将 return 的值设为 [('Una vez', 2)]
编辑:
所以您似乎希望每个值都有两个列表。如果是这样,那么您可以这样做:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values_list(
'respuesta').annotate(Count('respuesta'))
respuesta_set, counts = zip(*p)
在这种情况下,respuesta_set
将等于 ['Una vez']
,counts
将等于 [2]
。
您需要遍历结果列表:
p = RespuestaPreguntaSeleccionMultiple.objects.all().values('respuesta').annotate(Count('respuesta'))
for item in p:
item['respuesta__count'] # This will return 2
item['respuesta'] # This will return 'Una vez'