【发布时间】:2020-09-30 02:44:38
【问题描述】:
我想获得模型中所有可用价格的总和。我已经通过这个链接Sum of objects' prices in Django template 但是当我在 shell 中运行时无法得到答案,我得到了正确的输出,但是从模板点无法得到正确的输出
**shell**
>>> from tasks.models import Task
>>> from django.db.models import Sum
>>> Task.objects.all().aggregate(Sum('price'))
{'price__sum': 2.0}
型号:
from django.db.models import Sum, Avg
class Task(models.Model):
title = models.CharField(max_length=200)
complete = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
price = models.FloatField(max_length=5,default='0.00',editable=False)
def __str__(self):
return self.title
@property
def get_price_total(self):
total=Task.objects.all().aggregate(Avg("price"))
print(total)
return total
观看次数
def query(request):
tasks = Task.objects.all()
form = TaskForm()
if request.method =='POST':
form=TaskForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
print("Price",Task.get_price_total)
context = {'tasks':tasks,'form':form,'Totalprice':Task.get_price_total}
return render(request,'tasks/query.html',context)
控制台的输出是(在模板中也打印出来)
Django version 3.0.7, using settings 'todo.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Price <property object at 0x000002D3301502C0>
[29/Sep/2020 22:33:53] "GET /query/ HTTP/1.1" 200 2473
有人能帮我解决我哪里出错了吗?
【问题讨论】:
标签: django