dvlyadmin_pro/backend/apps/mall/freightConfigManageViews.py
2025-03-18 08:46:50 +08:00

61 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from rest_framework.views import APIView
from apps.mall.models import FreightConfigManage
from utils.jsonResponse import SuccessResponse,ErrorResponse,DetailResponse
from utils.common import get_parameter_dic,formatdatetime
from django.db.models import Q,F,Sum,Count
from django.db import transaction
from rest_framework import serializers
from rest_framework_simplejwt.authentication import JWTAuthentication
from utils.serializers import CustomModelSerializer
from utils.viewset import CustomModelViewSet
from rest_framework.permissions import IsAuthenticated
from utils.pagination import CustomPagination
import json
import django_filters
import logging
logger = logging.getLogger(__name__)
class FreightConfigManageFilterset(django_filters.rest_framework.FilterSet):
#开始时间
beginAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='gte') # 指定过滤的字段
#结束时间
endAt = django_filters.DateTimeFilter(field_name='create_datetime', lookup_expr='lte')
# 模糊搜索
name = django_filters.CharFilter(field_name='region_name', lookup_expr='icontains') # icontains表示该字段模糊搜索
class Meta:
model = FreightConfigManage
fields = ['beginAt', 'endAt','name']
class FreightConfigManageSerializer(CustomModelSerializer):
class Meta:
model = FreightConfigManage
read_only_fields = ["id"]
fields = '__all__'
class FreightConfigManageViewSet(CustomModelViewSet):
queryset = FreightConfigManage.objects.all().order_by("id")
serializer_class = FreightConfigManageSerializer
filterset_class = FreightConfigManageFilterset
# search_fields = ("name",)
#获取已选择区域,用于防止区域重复选择
def getAllSelect(self,request):
reqData = get_parameter_dic(request)
id = reqData.get("id",None)
queryset = FreightConfigManage.objects.filter(is_default=False)
if id:
queryset = queryset.exclude(id=id)
areaList = queryset.values_list("area",flat=True)
return DetailResponse(data=list(areaList))
#重写delete方法并改为逻辑删除
# def destroy(self, request, *args, **kwargs):
# instance = self.get_object_list()
# for i in range(len(instance)):
# instance[i].is_delete = True
# model = self.get_serializer().Meta.model
# model.objects.bulk_update(instance,fields=['is_delete'])
# return DetailResponse(msg="删除成功")