如何在 PUT 方法中给出 2 个参数?
How give 2 parameter in PUT method?
我有一个带有名称和 ID 的书籍模型。我想使用 PUT 方法请求更改名称,但我不知道如何处理 django 中的 put 请求。我想在 PUT 请求中接收 2 个参数:new name
和 id
。旧名称将被新名称替换,但 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.body
的QueryDict
是request.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'})
您应该将 MyModel
和 name
替换为要更新的正确模型和字段。
我有一个带有名称和 ID 的书籍模型。我想使用 PUT 方法请求更改名称,但我不知道如何处理 django 中的 put 请求。我想在 PUT 请求中接收 2 个参数:new name
和 id
。旧名称将被新名称替换,但 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.body
的QueryDict
是request.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'})
您应该将 MyModel
和 name
替换为要更新的正确模型和字段。