继续之前的Question。
我有一个查询集,我可以通过模板中的键获取值,但如果我在Views.py中尝试相同的步骤,我会得到:
'dict' object has no attribute 'user'
我的查询是:
rate = foo.objects.values('user').distinct().annotate(r=Avg("rate"), r1= Avg("rate1"), r2= Avg("rate2")).annotate(a = F('r')+F('r1')+F('r2')).order_by('a')[:5]
以上查询返回:
<QuerySet [{'user': 18, 'r': 2.0, 'r1': 2.0, 'a': 10.0, 'r2': 2.0}, {'user': 16, 'r': 1.0, 'r1': 5.0, 'a': 15.0, 'r2': 4.0}, {'user': 17, 'r': 4.333333333333333, 'r1': 5.0, 'a': 20.833333333333332, 'r2': 4.833333333333333}]>
在模板中,如果我这样做,它将返回user_id:
{% for r in rate %}
{{ r.user }}
{% endfor %}
但如果我在视图中做类似的话:
for r in rate:
foo = r.user
我会得到一个'dict'对象没有属性'user'。
我的目标是获取用户对象,因此我尝试获取user_id并通过它获取用户列表,以便我可以使用它们在模板中显示信息。
寻找原因,为什么它在模板中工作,而不是在视图中。
还要查找返回用户对象的查询的替代方法,而不是user_id。谢谢,