1
0
forked from erp-dev/erp

feat: added cache to mdy_plate_staging api

This commit is contained in:
2025-12-23 16:12:11 +08:00
parent 7731165071
commit 7ced07d402

View File

@@ -11,6 +11,9 @@ from __future__ import annotations
from typing import Any
from django.core.cache import cache
from django.utils.decorators import method_decorator
from django.views.decorators.cache import cache_page
from django.db.models import F
from rest_framework import serializers, viewsets
from rest_framework.pagination import LimitOffsetPagination
@@ -83,6 +86,7 @@ class MDYPlateOrderStagingSerializer(serializers.ModelSerializer):
return out
@method_decorator(cache_page(10), name='list')
class MDYPlateOrderStagingViewSet(viewsets.ReadOnlyModelViewSet):
"""开版暂存数据查询(只读)。"""
@@ -100,3 +104,10 @@ class MDYPlateOrderStagingViewSet(viewsets.ReadOnlyModelViewSet):
# 默认 -ctimectime 为空的放最后,避免老数据(未回填)跑到前面
return qs.order_by(F("ctime").desc(nulls_last=True), F("id").desc())
def filter_queryset(self, queryset):
qs = super().filter_queryset(queryset)
design_no = self.request.query_params.get(f"raw__{_PLATE_ORDER_DESIGN_NO_CONTROL_ID}")
if design_no:
qs = qs.filter(**{f"raw__{_PLATE_ORDER_DESIGN_NO_CONTROL_ID}": design_no})
return qs