如何在 PUT 方法中给出 2 个参数?

How give 2 parameter in PUT method?

我有一个带有名称和 ID 的书籍模型。我想使用 PUT 方法请求更改名称,但我不知道如何处理 django 中的 put 请求。我想在 PUT 请求中接收 2 个参数:new nameid。旧名称将被新名称替换,但 id 不会改变。 这是我的不完整功能:

def change_book_name(request):

    put = QueryDict(request.body)
    new_name = put.get("name")

试试这个:

from django.http import QueryDict
    if request.method == "PUT":
            put = QueryDict(request.body)
            key = put.get("key")

包裹request.bodyQueryDictrequest.POST(不管是GET、PUT、POST、PATCH等请求)。但是,您在这里的目的看起来更像是 PATCH 请求。

无论如何,您可以简单地从querydict中获取两个参数,并更新item。例如:

from django.http import JsonResponse
from django.views.decorators.http import require_http_methods

@require_http_methods(['PUT'])
def change_book_name(request):
    if 'name' in request.POST and 'id' in request.POST:
        new_name = request.POST['name']
        id = request.POST['id']
        <i>MyModel</i>.objects.filter(pk=id).update(<b><i>name</i>=new_name</b>)
        return JsonResponse({'status': 'success'})
    return JsonResponse({'status': 'failure'})

您应该将 MyModelname 替换为要更新的正确模型和字段。