forked from erp-dev/erp
feat: added cache to plate order list api
This commit is contained in:
@@ -10,6 +10,8 @@ from rest_framework.permissions import DjangoModelPermissions
|
||||
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.utils.decorators import method_decorator
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from django_filters import rest_framework as django_filters
|
||||
from django_filters import IsoDateTimeFilter
|
||||
@@ -80,6 +82,7 @@ class PrintingOrderFilterSet(django_filters.FilterSet):
|
||||
fields = ['customer', 'is_urgent', 'is_fabric_received', 'is_invalid']
|
||||
|
||||
|
||||
@method_decorator(cache_page(10), name='list')
|
||||
class PrintingOrderViewSet(viewsets.ModelViewSet):
|
||||
"""
|
||||
印染订单 ViewSet
|
||||
|
||||
@@ -201,6 +201,32 @@ DATABASES = {
|
||||
}
|
||||
|
||||
|
||||
# Cache configuration
|
||||
# https://docs.djangoproject.com/en/5.2/topics/cache/
|
||||
# Django 5.x 内置 Redis 缓存后端,使用 redis 包(已安装)
|
||||
# 容器内默认使用 redis://redis:6379/0,本地开发可使用 redis://localhost:6379/0
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.redis.RedisCache',
|
||||
'LOCATION': env(
|
||||
'CACHE_URL',
|
||||
default='redis://redis:6379/0', # 容器内默认地址
|
||||
),
|
||||
'OPTIONS': {
|
||||
# Redis 连接选项
|
||||
'socket_connect_timeout': 5, # 连接超时(秒)
|
||||
'socket_timeout': 5, # 操作超时(秒)
|
||||
'retry_on_timeout': True, # 超时后重试
|
||||
'health_check_interval': 30, # 健康检查间隔(秒)
|
||||
},
|
||||
# 键前缀,避免不同项目/环境之间的键冲突
|
||||
'KEY_PREFIX': env('CACHE_KEY_PREFIX', default='flower'),
|
||||
# 默认过期时间(秒),None 表示永不过期(由具体使用场景决定)
|
||||
'TIMEOUT': env.int('CACHE_DEFAULT_TIMEOUT', default=300), # 默认 5 分钟
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
|
||||
|
||||
|
||||
Reference in New Issue
Block a user