views.py 1004 B

123456789101112131415161718192021222324252627282930
  1. # coding=utf-8
  2. from django.conf import settings
  3. from rest_framework import generics
  4. from rest_framework.exceptions import NotFound
  5. from utils.permission import IsCustomer
  6. from utils import response_ok
  7. from apps.collection.models import Collection
  8. from apps.collection.filters import CollectionFilter
  9. from .serializers import CollectionSerializer
  10. class CollectionListViewSet(generics.ListAPIView):
  11. permission_classes = [IsCustomer, ]
  12. queryset = Collection.objects.filter(delete=False, commodity__delete=False, commodity__status=settings.ONLINE)
  13. serializer_class = CollectionSerializer
  14. def filter_queryset(self, queryset):
  15. queryset = queryset.filter(customer=self.request.customer)
  16. f = CollectionFilter(self.request.GET, queryset=queryset)
  17. return f.qs
  18. def list(self, request, *args, **kwargs):
  19. try:
  20. data = super(CollectionListViewSet, self).list(request)
  21. except NotFound:
  22. return response_ok([])
  23. return data