Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算杂志中所有商品的价格之和django ORM_Python_Django_Django Models_Django Orm - Fatal编程技术网

Python 如何计算杂志中所有商品的价格之和django ORM

Python 如何计算杂志中所有商品的价格之和django ORM,python,django,django-models,django-orm,Python,Django,Django Models,Django Orm,如何计算杂志中所有商品的价格之和 在以下观点中: class Item(models.Model): name = models.CharField(max_length=50) item_price = models.DecimalField(max_digits=5, decimal_places=2) class Magazine(models.Model): name = models.CharField(max_length=50) items = m

如何计算杂志中所有商品的价格之和

在以下观点中:

class Item(models.Model):
    name = models.CharField(max_length=50)
    item_price = models.DecimalField(max_digits=5, decimal_places=2)

class Magazine(models.Model):
    name = models.CharField(max_length=50)
    items = models.ManyToManyField('Item', blank=True, null=True)
    owner = models.ForeignKey(User, related_name='u_item')
首先看一看

它可能如下所示:

...
    user = request.user
    magazins = Magazine.objects.filter(owner= user)
...
使用:


欢迎来到SO!你想要每本杂志的总价格吗?为什么不把这些东西循环一下,加上价格呢?如果您能更具体地说明问题所在,我们可能会提供更好的帮助。欢迎!我不能参考商品价格。在self中的项目的多对多关系中。
杂志中的项目
功能?我需要更详细的解释:('total'return[],而不是该杂志中所有项目的价格。打印输出:user_magazin中项目的总成本为[]此代码在manage.py shell中返回此错误:名称“items”未定义为try
item
item
,而不是
items
,因为您已明确声明。我添加了“items”杂志。objects.filter(所有者=用户)。值('items')。注释(总计=总和('item_price'))但返回错误:FieldError:无法将关键字“item_price”解析为字段。选项有:id、名称、所有者、items-但这是多对多关系MultipleObject返回:get()返回了多个杂志-返回2!查找参数为{'owner':1}尝试从该所有者的杂志中删除一个条目,以便只返回一个结果。如果它适用于该所有者,则可以使其在以后适用于多个条目。
from django.db.models import Sum
owners_magazines = Magazine.objects.filter(owner='Your owner')
total = 0;
for magazine in owners_magazines:
    item_values_with_total = magazine.items.values().annotate(total=Sum('item_price'))
    total += <Read appropriately from item_values_with_total>
from django.db.models import Sum
    owners_magazines = Magazine.objects.filter(owner='Your owner')
    total = 0;
    for magazine in owners_magazines:
        all_items = magazines.items_set.all()
        for item in all_items:
            total += item.item_price

    print total
from django.db.models import Sum

for m in Magazine.objects.all():
   total = m.items_set.all().annotate(total=Sum('item_price'))
   print 'Total cost for items in {0} is {1}'.format(m,total)