1
0
forked from erp-dev/erp

feat: change cache condition for plate order query api

This commit is contained in:
2025-12-29 21:40:45 +08:00
parent 9bb2eab269
commit 13ef934af6

View File

@@ -10,6 +10,7 @@ from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
from django.db.models import CharField, Prefetch from django.db.models import CharField, Prefetch
from django.db.models.functions import Cast, Coalesce from django.db.models.functions import Cast, Coalesce
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from django.views.decorators.http import condition
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from django_filters import rest_framework as django_filters from django_filters import rest_framework as django_filters
@@ -556,7 +557,16 @@ class PlateOrderFilterSet(django_filters.FilterSet):
fields = ['customer', 'salesperson', 'merchandiser', 'urgency_level', 'is_invalid', 'is_ordered'] fields = ['customer', 'salesperson', 'merchandiser', 'urgency_level', 'is_invalid', 'is_ordered']
@method_decorator(cache_page(20), name='list') def _plate_order_last_modified(request, *args, **kwargs):
"""
返回 PlateOrder 表中最新的 updated_at 时间。
用于条件请求304 Not Modified判断。
"""
latest = models.PlateOrder.objects.order_by('-updated_at').values_list('updated_at', flat=True).first()
return latest
@method_decorator(condition(last_modified_func=_plate_order_last_modified), name='list')
class PlateOrderViewSet(LimitedModelViewSet): class PlateOrderViewSet(LimitedModelViewSet):
""" """
开版订单 ViewSet 开版订单 ViewSet