12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from django.shortcuts import render
- from rest_framework import viewsets, status
- from rest_framework.response import Response
- from rest_framework.settings import api_settings
- from courses import models
- from courses import serializers
- # Create your views here.
- class CoursesViewSet(viewsets.ModelViewSet):
- def list(self, request):
- coursesList = models.Courses.objects.all()
- serializer = serializers.CoursesSerializer(coursesList, many=True)
- return Response(serializer.data)
- def retrieve(self, request, pk=None):
- try:
- courses = models.Courses.objects.get(id=pk)
- except models.Courses.DoesNotExist:
- return Response(status=status.HTTP_404_NOT_FOUND)
- serializer = serializers.CoursesSerializer(courses)
- return Response(serializer.data)
- def destroy(self, request, pk=None):
- try:
- courses = models.Courses.objects.get(id=pk)
- except models.Courses.DoesNotExist:
- return Response(0)
- courses.delete()
- return Response(1)
- def create(self, request):
- serializer = serializers.CoursesSerializer(data=request.data)
- serializer.is_valid(raise_exception=True)
- self.perform_create(serializer)
- headers = self.get_success_headers(serializer.data)
- return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
- def perform_create(self, serializer):
- serializer.save()
- def get_success_headers(self, data):
- try:
- return {'Location': str(data[api_settings.URL_FIELD_NAME])}
- except (TypeError, KeyError):
- return {}
- def update(self, request, pk=None):
- response = {"status": 100, "msg": "修改成功"}
- courses = models.Courses.objects.get(id=pk)
- courses_ser = serializers.CoursesSerializer(data=request.data, instance=courses) # 反序列化,指定要修改的数据库
- if courses_ser.is_valid():
- courses_ser.save() # 修改数据库( rest_framework封装了代码 )
- response["data"] = courses_ser.data
- else:
- response["error"] = courses_ser.error_messages
- return Response(response)
|