def categoryList(request): paginator = LimitOffsetPagination() paginator.page_size = 10 cats = Category.objects.all() result_page = paginator.paginate_queryset(cats, request) serializer = CategorySerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def brandList(request): paginator = LimitOffsetPagination() paginator.page_size = 10 brands = Brand.objects.all() result_page = paginator.paginate_queryset(brands, request) serializer = BrandSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def productList(request): paginator = LimitOffsetPagination() paginator.page_size = 10 prods = Product.objects.all() result_page = paginator.paginate_queryset(prods, request) serializer = ProductSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def search(self, request): """This action returns result of a search request using cache""" paginator = LimitOffsetPagination() paginator.page_size = 20 data = request.data search_serializer = SearchSerializer(data=data) if search_serializer.is_valid(raise_exception=True): code = search_serializer.validated_data['code'].lower() if code in cache: result = cache.get(code) return Response(result) else: cities, all_cities = search_cities(code) page = paginator.paginate_queryset(all_cities, request) serializer = CityDetailedSerializer(page, many=True, context={ "code": code, "cities": cities }) result = serializer.data cache.set(code, result, timeout=CACHE_TTL) return paginator.get_paginated_response(result)
def restaurant_list(request): paginator = LimitOffsetPagination() paginator.page_size = 15 rests = Restaurants.objects.all() result_page = paginator.paginate_queryset(rests, request) serializer = RestaurantModelSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def order_list(request): paginator = LimitOffsetPagination() paginator.page_size = 15 orders = Order.objects.all() result_page = paginator.paginate_queryset(orders, request) serializer = OrderModelSerializer(result_page, many=True) return paginator.get_paginated_response(serializer.data)
def marks(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 saloon = get_object_or_404(AutoSaloon, id=pk) marks = AutoMark.objects.filter(auto_saloon_id=saloon.id) queryset = self.filter_queryset(marks) page = paginator.paginate_queryset(queryset, request) serializer = AutoMarkSerializer(page, many=True) return paginator.get_paginated_response(serializer.data)
def cars(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 country = get_object_or_404(Country, id=pk) carmodels = AutoModel.objects.filter(manufactured_in_id=country.id) queryset = self.filter_queryset(carmodels) page = paginator.paginate_queryset(queryset, request) serializer = AutoModelSerializer(page, many=True) return paginator.get_paginated_response(serializer.data)
def saloons(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 city = get_object_or_404(City, id=pk) saloons = AutoSaloon.objects.filter(city_id=city.id) queryset = self.filter_queryset(saloons) page = paginator.paginate_queryset(queryset, request) serializer = AutoSaloonSerializer(page, many=True) return paginator.get_paginated_response(serializer.data)
def cars(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 class_of = get_object_or_404(ClassCar, id=pk) cars = AutoModel.objects.filter(class_of_id=class_of.id) queryset = self.filter_queryset(cars) page = paginator.paginate_queryset(queryset, request) serializer = self.get_serializer(page, many=True) return paginator.get_paginated_response(serializer.data)
def offers(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 complectation = get_object_or_404(Complectation, id=pk) offs = Offer.objects.filter(complectation_id=complectation.id) queryset = self.filter_queryset(offs) page = paginator.paginate_queryset(queryset, request) serializer = self.get_serializer(page, many=True) return paginator.get_paginated_response(serializer.data)
def complectations(self, request, pk): paginator = LimitOffsetPagination() paginator.page_size = 20 model = get_object_or_404(AutoModel, id=pk) comps = Complectation.objects.filter(auto_model_id=model.id) queryset = self.filter_queryset(comps) page = paginator.paginate_queryset(queryset, request) serializer = ComplectationSerializer(page, many=True) return paginator.get_paginated_response(serializer.data)