django - Django:有没有办法在搜索后重新聚合总和?
问题描述
目前在我的ListView中有一个过滤器,它只显示当前月份和年份的数据,它聚合了Sum。现在,在我的过滤中存在三个问题。
第一个问题;过滤器只能显示当前月份和年份,用户无法查看之前的月份和年份。
第二个问题;date__icontains的搜索过滤器只接受月份的数值。
第三个问题;在我为某个月份添加搜索过滤器后,过滤器不会重新聚合Sum。
这是我的工资单视图
class PayrollView(LoginRequiredMixin, ListView):
template_name = 'payroll/payroll.html'
def get(self, request, *args, **kwargs):
search = request.GET.get('search')
user = request.user.staffs.full_name
current_month = datetime.date.today().month
current_year = datetime.date.today().year
payroll_list = VaPayroll.objects.all()
payroll_data = payroll_list.filter(Q(virtual_assistant__name=user),
Q(date__month=current_month))
total_salary = VaPayroll.objects.filter(Q(virtual_assistant__name=user),
Q(date__month=current_month),
Q(date__year=current_year)).aggregate(Sum('salary'))
if search:
payroll_data = payroll_list.filter(Q(virtual_assistant__name=user),
Q(date__icontains=search))
payroll_data
context = {
'total_salary': total_salary,
'payroll_data': payroll_data
}
return render(request, self.template_name, context)
如何获得基于某个月份在每次搜索后汇总总和的结果?
解决方案
我已经想通了,我刚刚在 if搜索语句中添加了 total_salary 并将date__month=current_month替换为date__month =search
推荐阅读
- android - 在android renderscript中使用大数据数组时等待阻塞GC ProfileSaver
- firebase - “AngularFireDatabase”类型上不存在属性“集合”?
- data-visualization - 如何在 Google Data Studio 中按维度分隔 Metric?
- php - 当laravel中的第一个索引数据非常大时,我如何使用解码的json数据
- php - 无法从谷歌电子表格中获取 json?
- python - 如何将 Int64Index 转换为索引(从 CSV 读取)?
- css - 在 wordpress 上更改 Facebook Messenger 聊天机器人位置的问题
- java - 声明的包“”与预期的包 src 不匹配:Atom 编辑器(错误)
- java - 父函数终止时内线程是否死亡
- react-native - 无法从某些地区获取博览会推送通知令牌