APIView delete example
Here is an example of how to delete an object using Django Rest Framework's APIView:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelDetailView(APIView):
"""
Retrieve, update or delete a MyModel instance.
"""
def get_object(self, pk):
try:
return MyModel.objects.get(pk=pk)
except MyModel.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
my_model = self.get_object(pk)
serializer = MyModelSerializer(my_model)
return Response(serializer.data)
def put(self, request, pk, format=None):
my_model = self.get_object(pk)
serializer = MyModelSerializer(my_model, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, pk, format=None):
my_model = self.get_object(pk)
my_model.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
In this example, the delete method is used to delete a MyModel instance when a DELETE request is made to the API endpoint for that instance. The get_object method is used to retrieve the instance by its primary key (pk). Once the instance is retrieved, the delete method is called on it, and a 204 No Content response is returned to indicate that the resource has been successfully deleted.
原文地址: https://www.cveoy.top/t/topic/8I8 著作权归作者所有。请勿转载和采集!