views.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # coding=utf-8
  2. from rest_framework import generics
  3. from utils.permission import IsCustomerUser
  4. from utils.exceptions import CustomError
  5. from utils import response_ok
  6. from .serializers import ActivitySerializer
  7. from apps.activity.models import Activity
  8. from apps.activity.filters import ActivityFilter
  9. class ActivityListViewSet(generics.ListAPIView):
  10. # permission_classes = [IsCustomerUser, ]
  11. queryset = Activity.objects.filter(delete=False)
  12. serializer_class = ActivitySerializer
  13. def filter_queryset(self, queryset):
  14. f = ActivityFilter(self.request.GET, queryset=queryset)
  15. return f.qs
  16. def list(self, request, *args, **kwargs):
  17. queryset = self.filter_queryset(self.get_queryset())
  18. serializer = self.get_serializer(queryset, many=True)
  19. return response_ok(serializer.data)
  20. class ActivityDetailView(generics.RetrieveAPIView):
  21. # permission_classes = [IsCustomerUser, ]
  22. queryset = Activity.objects.filter(delete=False)
  23. serializer_class = ActivitySerializer
  24. def retrieve(self, request, *args, **kwargs):
  25. id = request.GET.get('id')
  26. instance = self.queryset.filter(id=id).first()
  27. if not instance:
  28. raise CustomError(u'未找到相应的活动!')
  29. serializer = self.get_serializer(instance)
  30. return response_ok(serializer.data)