gault-millau/apps/location/views.py

140 lines
4.1 KiB
Python

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"""
model = models.Country
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 CountryCreateView(CountryViewMixin, generics.CreateAPIView):
"""Create view for model Country"""
serializer_class = serializers.CountrySerializer
class CountryRetrieveView(CountryViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model Country"""
serializer_class = serializers.CountrySerializer
class CountryListView(CountryViewMixin, generics.ListAPIView):
"""List view for model Country"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.CountrySerializer
class CountryDestroyView(CountryViewMixin, generics.DestroyAPIView):
"""Destroy view for model Country"""
serializer_class = serializers.CountrySerializer
class CountryUpdateView(CountryViewMixin, generics.UpdateAPIView):
"""Update view for model Country"""
serializer_class = serializers.CountrySerializer
# 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.AddressSerializer
class AddressRetrieveView(AddressViewMixin, generics.RetrieveAPIView):
"""Retrieve view for model Address"""
serializer_class = serializers.AddressSerializer
class AddressListView(AddressViewMixin, generics.ListAPIView):
"""List view for model Address"""
permission_classes = (permissions.AllowAny, )
serializer_class = serializers.AddressSerializer
class AddressDestroyView(AddressViewMixin, generics.DestroyAPIView):
"""Destroy view for model Address"""
serializer_class = serializers.AddressSerializer
class AddressUpdateView(AddressViewMixin, generics.UpdateAPIView):
"""Update view for model Address"""
serializer_class = serializers.AddressSerializer