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 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
|
||||||
|
|||||||
Reference in New Issue
Block a user