gault-millau/apps/location/views/common.py
2019-10-01 18:07:04 +03:00

117 lines
3.3 KiB
Python

"""Location app views."""
from rest_framework import generics
from rest_framework import permissions
from location import models, serializers
# Mixins
class CountryViewMixin(generics.GenericAPIView):
"""View Mixin for model Country"""
serializer_class = serializers.CountrySerializer
permission_classes = (permissions.AllowAny, )
queryset = models.Country.objects.all()
class RegionViewMixin(generics.GenericAPIView):
"""View Mixin for model Region"""
model = models.Region
queryset = models.Region.objects.all()
class CityViewMixin(generics.GenericAPIView):
"""View Mixin for model City"""
model = models.City
queryset = models.City.objects.all()
class AddressViewMixin(generics.GenericAPIView):
"""View Mixin for model Address"""
model = models.Address
queryset = models.Address.objects.all()
# Country
class CountryListView(CountryViewMixin, generics.ListAPIView):
"""List view for model Country."""
pagination_class = None
class CountryRetrieveView(CountryViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model Country."""
# Region
class RegionCreateView(RegionViewMixin, generics.CreateAPIView):
"""Create view for model Region"""
serializer_class = serializers.RegionSerializer
class RegionRetrieveView(RegionViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model Region"""
serializer_class = serializers.RegionSerializer
class RegionListView(RegionViewMixin, generics.ListAPIView):
"""List view for model Country"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.CountrySerializer
class RegionDestroyView(RegionViewMixin, generics.DestroyAPIView):
"""Destroy view for model Country"""
serializer_class = serializers.CountrySerializer
class RegionUpdateView(RegionViewMixin, generics.UpdateAPIView):
"""Update view for model Country"""
serializer_class = serializers.CountrySerializer
# City
class CityCreateView(CityViewMixin, generics.CreateAPIView):
"""Create view for model City"""
serializer_class = serializers.CitySerializer
class CityRetrieveView(CityViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model City"""
serializer_class = serializers.CitySerializer
class CityListView(CityViewMixin, generics.ListAPIView):
"""List view for model City"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.CitySerializer
class CityDestroyView(CityViewMixin, generics.DestroyAPIView):
"""Destroy view for model City"""
serializer_class = serializers.CitySerializer
class CityUpdateView(CityViewMixin, generics.UpdateAPIView):
"""Update view for model City"""
serializer_class = serializers.CitySerializer
# Address
class AddressCreateView(AddressViewMixin, generics.CreateAPIView):
"""Create view for model Address"""
serializer_class = serializers.AddressDetailSerializer
class AddressRetrieveView(AddressViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model Address"""
serializer_class = serializers.AddressDetailSerializer
class AddressListView(AddressViewMixin, generics.ListAPIView):
"""List view for model Address"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.AddressDetailSerializer