Yvo*_*nne 1 python django django-views
我正在查询以获取按月的苹果总数。现在我想检索并打印 的数据total_apple。
fruits= Fruits.objects\
.annotate(month = TruncMonth('sold_date'))\
.values('month')\
.annotate(total_apple=Sum('apple'))\
.order_by('-month')
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法来打印它,但返回了错误。
我试过了:
1)
total_apple= fruits['total_apple']
print(total_apple)
Run Code Online (Sandbox Code Playgroud)
2)
context['total_apple'] = total_apple
print(context)
Run Code Online (Sandbox Code Playgroud)
返回错误:
No exception message supplied
3)
print(fruits.total_apple)
Run Code Online (Sandbox Code Playgroud)
返回错误:
'QuerySet' object has no attribute 'total_apple'
但是当我尝试时print(fruits),它返回包含我想要的属性的查询集。
<QuerySet [{'month': datetime.date(2018, 10, 1), 'total_apple': 1636}, {'month': datetime.date(2018, 9, 1), 'total_apple': 1658},.....>
Run Code Online (Sandbox Code Playgroud)
fruits= Fruits.objects\
.annotate(month = TruncMonth('sold_date'))\
.values('month')\
.annotate(total_apple=Sum('apple'))\
.order_by('-month')
Run Code Online (Sandbox Code Playgroud)
该查询返回一个对象列表。所以你可以迭代fruits并打印fruit.total_apple
for fruit in fruits:
print(fruit['total_apple'])
Run Code Online (Sandbox Code Playgroud)
fruits返回 QueryDict,因此您需要通过键访问它的值,例如total_apple
在查询下方。
另请注意,如果您想要单个结果,您可以像这样查询
fruits= Fruits.objects\
.annotate(month = TruncMonth('sold_date'))\
.values('month')\
.annotate(total_apple=Sum('apple'))\
.order_by('-month').first()
Run Code Online (Sandbox Code Playgroud)
然后print(fruits.total_apple)
| 归档时间: |
|
| 查看次数: |
11709 次 |
| 最近记录: |