12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # 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)
|