You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
4.2 KiB

import logging
from rest_framework import viewsets
from ERP_5.utils.base_views import MultipleDestroyMixin
from basic_info.models import Nation, Province, City
from basic_info.serializer.area_serializer import NationSerializer, ProvinceSerializer, CitySerializer
logger = logging.getLogger('my')
class NationView(viewsets.ModelViewSet, MultipleDestroyMixin):
"""
create:
国家--新增
国家新增, status: 201(成功), return: 新增国家信息
destroy:
国家--删除
国家删除, status: 204(成功), return: None
multiple_delete:
国家--批量删除,必传参数ids=[1,2,3,4...]
国家批量删除, status: 204(成功), return: None
update:
国家--修改,只是修改国家名字
国家修改, status: 200(成功), return: 修改后的国家信息
partial_update:
国家--局部修改,只是修改国家名字
国家局部修改, status: 200(成功), return: 修改后的国家信息
list:
国家--获取列表
国家列表信息, status: 200(成功), return: 国家信息列表
retrieve:
查询某一个国家
查询指定ID的国家, status: 200(成功), return: 用户国家
"""
queryset = Nation.objects.all()
serializer_class = NationSerializer
class ProvinceView(viewsets.ModelViewSet, MultipleDestroyMixin):
"""
create:
省份--新增
省份新增, status: 201(成功), return: 新增省份信息
destroy:
省份--删除
省份删除, status: 204(成功), return: None
multiple_delete:
省份--批量删除,必传参数ids=[1,2,3,4...]
省份批量删除, status: 204(成功), return: None
update:
省份--修改,只是修改省份名字
省份修改, status: 200(成功), return: 修改后的省份信息
partial_update:
省份--局部修改,只是修改省份名字
省份局部修改, status: 200(成功), return: 修改后的省份信息
list:
省份--获取列表请求参数为nid(国家ID), 没有传参数表示所有省份列表nid=x 表示查询该国家的省份列表
省份列表信息, status: 200(成功), return: 省份信息列表
retrieve:
查询某一个省份
查询指定ID的省份, status: 200(成功), return: 用户省份
"""
queryset = Province.objects.all()
serializer_class = ProvinceSerializer
def get_queryset(self):
# 请求参数为nid(国家ID), 没有传参数表示所有省份列表。nid=x 表示查询该国家的省份列表
nid = self.request.query_params.get('nid', None)
if nid:
nid = int(nid)
return Province.objects.filter(nation__id=nid).all()
else:
return Province.objects.all()
class CityView(viewsets.ModelViewSet, MultipleDestroyMixin):
"""
create:
城市--新增
城市新增, status: 201(成功), return: 新增城市信息
destroy:
城市--删除
城市删除, status: 204(成功), return: None
multiple_delete:
城市--批量删除,必传参数ids=[1,2,3,4...]
城市批量删除, status: 204(成功), return: None
update:
城市--修改,只是修改城市名字
城市修改, status: 200(成功), return: 修改后的城市信息
partial_update:
城市--局部修改,只是修改城市名字
城市局部修改, status: 200(成功), return: 修改后的城市信息
list:
城市--获取列表请求参数为pid(省份ID), 没有传参数表示所有城市列表pid=x 表示查询该省份下的城市列表
城市列表信息, status: 200(成功), return: 城市信息列表
retrieve:
查询某一个城市
查询指定ID的城市, status: 200(成功), return: 用户城市
"""
queryset = City.objects.all()
serializer_class = CitySerializer
def get_queryset(self):
# 请求参数为pid(省份ID), 没有传参数表示所有城市列表。pid=x 表示查询该省份下的城市列表
pid = self.request.query_params.get('pid', None)
if pid:
pid = int(pid)
return City.objects.filter(province__id=pid).all()
else:
return City.objects.all()