Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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_筛选器筛选的queryset的字段总和_Python_Django_Django Filter - Fatal编程技术网

Python 使用django_筛选器筛选的queryset的字段总和

Python 使用django_筛选器筛选的queryset的字段总和,python,django,django-filter,Python,Django,Django Filter,我有以下看法 class AuthorList(FilterView): model = Author filterset_class = AuthorFilter context_object_name = 'authors' 在模板中,其中一个字段是{{author.value}},它是一个整数 我想做的是在我的模板中显示所有{{author.value}}的总和,但要以动态方式显示(如果使用了一些过滤器,那么总和将使用当前查询集更新) 我曾尝试使用get\u co

我有以下看法

class AuthorList(FilterView):
    model = Author
    filterset_class = AuthorFilter
    context_object_name = 'authors'
在模板中,其中一个字段是
{{author.value}}
,它是一个整数

我想做的是在我的模板中显示所有
{{author.value}}
的总和,但要以动态方式显示(如果使用了一些过滤器,那么总和将使用当前查询集更新)

我曾尝试使用
get\u context\u data
添加额外的上下文,但我不知道如何以动态方式创建它

编辑

已尝试此操作,但仍不起作用:

    @property
    def get_sum_values(self):
        sum_values = self.objects.all().aggregate(Sum('value'))['value__sum']
        return sum_values
在模板中:
{{authors.get\u sum\u values}

我还尝试在属性中添加一个print语句,但没有显示任何内容,因此我猜函数甚至没有加载

我的模型:

class Author(models.Model):
    name = models.CharField(max_length=50, blank=True, null=True)
    value = models.IntegerField(null=True, blank=True)

你试过在模型中求和作为函数吗

@属性
def钱包\金额\客人(自助):
数据支付=self.user.earnings\u set.filter(交易类型='g').aggregate(总和('amount'))['amount\u总和']
如果数据=无:
数据=0
返回付款数据

以上只是我以前使用过的一个例子。然后您可以以blah.function\u name的形式调用html。您是否尝试过在模型中作为函数进行求和

@属性
def钱包\金额\客人(自助):
数据支付=self.user.earnings\u set.filter(交易类型='g').aggregate(总和('amount'))['amount\u总和']
如果数据=无:
数据=0
返回付款数据

以上只是我以前使用过的一个例子。然后,您可以以blah.function_name

的形式调用html。谢谢,我已经根据您的建议编辑了我的帖子,但模板中没有显示任何内容,您能明白原因吗?请给我看一下您的模型吗?尝试以下操作:@property def get_sum_values(self):sum_values=self.author_set.all().aggregate(sum('value'))['value_sum']return sum\u values同样:@property def get\u sum\u values(self):sum\u values=self.user.author\u set.all().aggregate(sum('value'))['value\u sum\u sum']return sum\u values hanks,我根据你的建议编辑了我的帖子,但模板中没有显示任何内容,你能明白为什么吗?请给我看看你的模型吗?试试下面的:@property def get\u sum\u values(self):sum_values=self.author_set.all().aggregate(sum('value'))['value_sum']返回sum_值也:@property def get_sum_values(self):sum_values=self.user.author_set.all().aggregate(sum('value'))['value_sum']返回总和值如果我没有弄错,从
get\u sum\u values
中的
self
可以到达没有
对象
属性的模型实例。您可以尝试在视图的
get\u context\u data()
中使用a。是的,这是我首先尝试的,但我有
Author.objects.all().aggregate(总和('value'))['value\uuuu sum']
,这不是动态的(总和没有更新为筛选的作者)。您应该发布一些代码,以明确如何筛选作者,以及“动态”是什么意思。也就是说,根据您提供的代码,您应该显示您与想要得到的结果相处的结果。我发现从这个链接使用qs很有帮助:如果我没有弄错的话,从
get\u sum\u values
中的
self
可以到达没有
对象
属性的模型实例。您可以尝试在中使用de>获取视图的上下文数据()。是的,这是我第一次尝试的,但我有
Author.objects.all().aggregate(Sum('value'))['value\uu Sum']
,这不是动态的(在过滤的地方,Sum没有更新为作者)。您应该发布一些代码,以明确作者是如何过滤的,以及“动态”是什么意思。也就是说,根据您提供的代码,您应该显示您所获得的结果以及您想要获得的结果。我发现使用此链接中的qs很有帮助: