I'm trying to delete a Classroom object from the database. When I try to go to Django Rest Web Browser to fetch api/classroom/delete/1/ I get this response.
HTTP 405 Method Not Allowed
Allow: DELETE, OPTIONS
Content-Type: application/json
Vary: Accept
{
"detail": "Method \"GET\" not allowed."
}
class ClassroomDeleteViewAPI(generics.DestroyAPIView):
serializer_class = ClassroomSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
return Classroom.objects.filter(teacher_assigned=self.request.user)
def delete(self, request, pk):
try:
classroom = Classroom.objects.get(pk=pk)
classroom.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
except Classroom.DoesNotExist:
return Response({
'detail': 'Classroom not found'
}, status=status.HTTP_404_NOT_FOUND)
I don't know what happened here. There is no url route merging.
The View is correctly processing a delete request.
Why is that happening?
My path for delete looks like this:
path('classroom/delete/<int:pk>/', ClassroomDeleteViewAPI.as_view(), name='delete_classroom')