Как выполнить метод удаления в drf django - PullRequest
0 голосов
/ 22 ноября 2018

Как выполнить запрос на удаление в Django drf?Как я передам параметры для запроса?Пожалуйста, помогите с решением.Я очень новичок в этом drf-django-python программировании.

class DeleteView(APIView):
    def delete(self, request,format=None):
        id = request.POST['book_id']
        email = request.POST['email']
        book = models.Book.objects.filter(book_id=id)
        book_uploader = serializers.BookSerializer(book[0]).data['uploader']['email']
        logged_in = request.user
        print(log)
        if book_uploader == logged_in :

            books = models.BookUserRelationship.objects.filter(book= id, user__email=email)

            books.delete()
            return Response("Successfully removed", status=status.HTTP_204_NO_CONTENT)
        else :
            return Response("Not able to remove")

1 Ответ

0 голосов
/ 25 ноября 2018

В комментариях вы заметили, что параметры будут встроены в URL, но вы пытаетесь получить значения из POST dict.

Если ваш URL-адрес похож на

/ books / id/ email /

Вы должны использовать request.kwargs dict like request.kwargs.get ('email')

Но еслиВаш URL выглядит как

/books/id/?email=someemail@google.com

id будет в запросе .kwargs но email в request.query_params

Обратите внимание, что каждая переменная url находится в request.query_params dict.

ВАЖНО

Если у вас есть ID url param без именованной группы, viewset не сможет получить его из request.kwargs по имени

...