forked from erp-dev/erp
feat: change cache condition for plate order query api
This commit is contained in:
@@ -10,6 +10,7 @@ from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
|
||||
from django.db.models import CharField, Prefetch
|
||||
from django.db.models.functions import Cast, Coalesce
|
||||
from django.views.decorators.cache import cache_page
|
||||
from django.views.decorators.http import condition
|
||||
from django.utils.decorators import method_decorator
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
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']
|
||||
|
||||
|
||||
@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):
|
||||
"""
|
||||
开版订单 ViewSet
|
||||
|
||||
Reference in New Issue
Block a user