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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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()