views.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from django.shortcuts import render
  2. from rest_framework import viewsets, status
  3. from rest_framework.response import Response
  4. from rest_framework.settings import api_settings
  5. from courses import models
  6. from courses import serializers
  7. # Create your views here.
  8. class CoursesViewSet(viewsets.ModelViewSet):
  9. def list(self, request):
  10. coursesList = models.Courses.objects.all()
  11. serializer = serializers.CoursesSerializer(coursesList, many=True)
  12. return Response(serializer.data)
  13. def retrieve(self, request, pk=None):
  14. try:
  15. courses = models.Courses.objects.get(id=pk)
  16. except models.Courses.DoesNotExist:
  17. return Response(status=status.HTTP_404_NOT_FOUND)
  18. serializer = serializers.CoursesSerializer(courses)
  19. return Response(serializer.data)
  20. def destroy(self, request, pk=None):
  21. try:
  22. courses = models.Courses.objects.get(id=pk)
  23. except models.Courses.DoesNotExist:
  24. return Response(0)
  25. courses.delete()
  26. return Response(1)
  27. def create(self, request):
  28. serializer = serializers.CoursesSerializer(data=request.data)
  29. serializer.is_valid(raise_exception=True)
  30. self.perform_create(serializer)
  31. headers = self.get_success_headers(serializer.data)
  32. return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
  33. def perform_create(self, serializer):
  34. serializer.save()
  35. def get_success_headers(self, data):
  36. try:
  37. return {'Location': str(data[api_settings.URL_FIELD_NAME])}
  38. except (TypeError, KeyError):
  39. return {}
  40. def update(self, request, pk=None):
  41. print(666)
  42. return Response(1)