【发布时间】:2018-08-05 00:40:40
【问题描述】:
我想使用 FilterSets 在页面上进行复杂的过滤。这是我的Filterset,很好地向我展示了所选时间和所选参数的元组。
# filters.py
class workFilter(filters.FilterSet):
start__gt = filters.DateTimeFilter(name='time_start', lookup_expr='gte')
start__lt = filters.DateTimeFilter(name='time_end', lookup_expr='lte')
class Meta:
model = Work
fields = ('machine', 'program')
但我想添加解释查询数据的图表。为此,我需要信息,例如总时间。我是这样查询他们的:
#views.py
def search(request):
work_list = Work.objects.all()
work_filter = workFilter(request.GET, queryset=work_list)
filter_backends = (filters.DjangoFilterBackend,)
#some queries to add to context, such as
sum_work = Work.objects.aggregate(Sum('time'))['time__sum']
return render_to_response(
TEMPLATE_DIRS + 'index.html',
{
'filter': praca_filter,
'sum_work': sum_work,
}
)
但遗憾的是,这些查询是根据整个数据库,而不是我过滤的对象集。
如何查询过滤集work_filter?
【问题讨论】:
标签: django django-queryset django-filter