country filter in region and country_code in cities

This commit is contained in:
alex 2019-12-18 15:55:05 +03:00
parent 3876a6b885
commit 80dce51db2

View File

@ -1,4 +1,5 @@
"""Location app views."""
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import generics
from location import models, serializers
@ -11,6 +12,7 @@ from utils.serializers import ImageBaseSerializer
from location import filters
# Address
@ -33,9 +35,16 @@ class CityListCreateView(common.CityViewMixin, generics.ListCreateAPIView):
"""Create view for model City."""
serializer_class = serializers.CitySerializer
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]
queryset = models.City.objects.all()
# queryset = models.City.objects.all()
filter_class = filters.CityBackFilter
def get_queryset(self):
"""Overridden method 'get_queryset'."""
qs = models.City.objects.all()
if self.request.country_code:
qs = qs.by_country_code(self.request.country_code)
return qs
class CityListSearchView(common.CityViewMixin, generics.ListCreateAPIView):
"""Create view for model City."""
@ -100,6 +109,11 @@ class RegionListCreateView(common.RegionViewMixin, generics.ListCreateAPIView):
pagination_class = None
serializer_class = serializers.RegionSerializer
permission_classes = [IsAuthenticatedOrReadOnly | IsCountryAdmin]
filter_backends = (DjangoFilterBackend,)
ordering_fields = '__all__'
filterset_fields = (
'country',
)
class RegionRUDView(common.RegionViewMixin, generics.RetrieveUpdateDestroyAPIView):