From 98daa93abd804b248008f94c3ac3b2dd3efab963 Mon Sep 17 00:00:00 2001 From: XingQue Date: Wed, 24 Jun 2026 00:07:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=80=83=E6=A0=B8=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=BB=9F=E8=AE=A1=E4=B8=8D=E6=B1=A1=E6=9F=93?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/view.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/backend/view.py b/backend/view.py index c6f5a95..1568181 100644 --- a/backend/view.py +++ b/backend/view.py @@ -9022,13 +9022,13 @@ class KhjlglView(APIView): if page_size > 100: page_size = 100 - qs = _build_shenhe_jilu_filters(request.data) + filter_data = request.data + qs = _build_shenhe_jilu_filters(filter_data) - stats_qs = qs - agg = stats_qs.aggregate( - total_fee=Sum('jiaofei_jine'), - ) - tag_rows = stats_qs.values( + # FluentQuery.filter() 会原地修改同一对象;统计与列表必须各自独立查询 + stats_base = _build_shenhe_jilu_filters(filter_data) + agg = stats_base.aggregate(total_fee=Sum('jiaofei_jine')) + tag_rows = _build_shenhe_jilu_filters(filter_data).values( 'chenghao_id', 'chenghao__mingcheng' ).annotate( total=Count('jilu_id'), @@ -9039,11 +9039,11 @@ class KhjlglView(APIView): ).order_by('-total') stats = { - 'total': stats_qs.count(), - 'passed': stats_qs.filter(zhuangtai=1).count(), - 'failed': stats_qs.filter(zhuangtai=2).count(), - 'in_progress': stats_qs.filter(zhuangtai=0).count(), - 'pending': stats_qs.filter(zhuangtai=3).count(), + 'total': stats_base.count(), + 'passed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=1).count(), + 'failed': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=2).count(), + 'in_progress': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=0).count(), + 'pending': _build_shenhe_jilu_filters(filter_data).filter(zhuangtai=3).count(), 'total_fee': float(agg['total_fee'] or 0), 'tag_stats': [ { @@ -9061,7 +9061,7 @@ class KhjlglView(APIView): total = qs.count() start = (page - 1) * page_size - rows = qs.order_by('-CreateTime')[start:start + page_size] + rows = qs.order_by('-CreateTime')[start:start + page_size].to_list() uids = [] jilu_ids = []