如何在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")
答案 0 :(得分:0)
在注释中,您注意到参数将嵌入在url中,但是您试图从POST字典获取值。
如果您的网址类似于
/ books / id / email /
您应该使用 request.kwargs 字典,例如 request.kwargs.get('email')
但是如果您的网址是
/books/id/?email=someemail@google.com
id 将出现在 request.kwargs 中,而电子邮件将出现在 request.query_params
中请注意,每个url变量都在 request.query_params 字典中。
重要
如果您具有没有命名组的ID url参数,则视图集将无法通过名称从 request.kwargs 中获取