Django: Почему я получаю 404 при попытке удалить объект из базы данных?
У меня есть модель uploads и я хочу иметь возможность удалять изображения, поэтому я написал запрос на удаление, который принимает id изображения, но я продолжаю получать 404 not found, у меня есть то же самое и те же шаги для модели файлов, которую я создал, и она работает нормально.
@api_view(['GET', 'POST','DELETE'])
def Upload_list(request):
if request.method == 'GET':
queryset = Uploads.objects.all()
uploads=queryset.filter(owner=request.user)
serializer = UploadSerializer(uploads, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = UploadSerializer(data=request.data)
if serializer.is_valid():
serializer.save(owner=request.user)
respFile=list(File.objects.filter(id=str(File.objects.latest('created_at'))))
serializers=Fileserializers(respFile,read_only=True,many=True)
return Response(serializers.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def UploadsDetails(request,pk):
try:
image=Uploads.objects.get(pk=pk)
except Uploads.DoesNotExist:
return HttpResponse(status=404)
if request.method =='GET':
serializers=Fileserializers(image)
return JsonResponse(serializers)
elif request.method =='DELETE':
image.delete()
return HttpResponse(status=204)
вот эти ссылки:
from django.urls import path
from .views import Upload_list,login
from .views import UploadsDetails
urlpatterns=[
path('Uploads/',Upload_list),
path('Uploads/<uuid:pk>/',UploadsDetails),
path('login/', login)
]
Вы забыли добавить decorator
к вашему function
@api_view(['GET','DELETE'])
def UploadsDetails(request,pk):
pass