# coding=utf-8 from django.utils import timezone from django.db import transaction from django.db.models import F from django.conf import settings from rest_framework import generics, mixins from rest_framework.views import APIView from rest_framework.viewsets import GenericViewSet from rest_framework.decorators import action from rest_framework.exceptions import NotFound from utils import response_ok from utils.permission import IsCustomerUser from utils.exceptions import CustomError from .serializers import SeriesSerializer, ModelSerializer, ModelDetailSerializer from apps.activity.models import Activity from apps.vehicle.filters import SeriesFilter, ModelFilter from apps.vehicle.models import Series, Model class SeriesListViewSet(generics.ListAPIView): queryset = Series.objects.filter(enabled=True, delete=False) serializer_class = SeriesSerializer def filter_queryset(self, queryset): f = SeriesFilter(self.request.GET, queryset=queryset) return f.qs def list(self, request, *args, **kwargs): queryset = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(queryset, many=True) return response_ok(serializer.data) class ModelListViewSet(generics.ListAPIView): queryset = Model.objects.filter(enabled=True, delete=False) serializer_class = ModelSerializer def filter_queryset(self, queryset): f = ModelFilter(self.request.GET, queryset=queryset) return f.qs def list(self, request, *args, **kwargs): queryset = self.filter_queryset(self.get_queryset()) serializer = self.get_serializer(queryset, many=True) return response_ok(serializer.data) class ModelDetailViewSet(generics.ListAPIView): queryset = Model.objects.filter(enabled=True, delete=False) serializer_class = ModelDetailSerializer def retrieve(self, request, *args, **kwargs): id = request.GET.get('id') instance = self.queryset.filter(id=id).first() if not instance: raise CustomError(u'未找到相应的车辆!') serializer = self.get_serializer(instance) return response_ok(serializer.data)