area.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding: utf-8 -*-
  2. from django.db.models import Q
  3. from rest_framework import serializers
  4. from dvadmin.system.models import Area
  5. from dvadmin.utils.json_response import SuccessResponse
  6. from dvadmin.utils.serializers import CustomModelSerializer
  7. from dvadmin.utils.viewset import CustomModelViewSet
  8. class AreaSerializer(CustomModelSerializer):
  9. """
  10. 地区-序列化器
  11. """
  12. pcode_count = serializers.SerializerMethodField(read_only=True)
  13. def get_pcode_count(self, instance: Area):
  14. return Area.objects.filter(pcode=instance).count()
  15. class Meta:
  16. model = Area
  17. fields = "__all__"
  18. read_only_fields = ["id"]
  19. class AreaCreateUpdateSerializer(CustomModelSerializer):
  20. """
  21. 地区管理 创建/更新时的列化器
  22. """
  23. class Meta:
  24. model = Area
  25. fields = '__all__'
  26. class AreaViewSet(CustomModelViewSet):
  27. """
  28. 地区管理接口
  29. list:查询
  30. create:新增
  31. update:修改
  32. retrieve:单例
  33. destroy:删除
  34. """
  35. queryset = Area.objects.all()
  36. serializer_class = AreaSerializer
  37. extra_filter_backends = []