是否可以在Django中检索HTTP PATCH请求的请求参数? request.method == 'PATCH'
已被识别,但我很难检索请求有效负载。我试过了request.REQUEST.items()
,但这里没有包含任何数据。我知道我可以使用Django-tastypie,但在这种情况下,我想避免它(我认为tastypie正在使用一些Django方法来检索这些数据)。
我正在使用Django 1.5.1。
答案 0 :(得分:1)
您可以手动使用QueryDict类。这是在django中实现的类,并处理通过http请求接收的所有文本数据。
文档链接: https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.QueryDict
以下是一个使用示例:
from django.http import QueryDict
def home_view(request):
if request.method == 'PATCH':
data = QueryDict(request.body)
print data['your_field']
答案 1 :(得分:0)
raw_post_data做了这个伎俩(之前我用过,但忘了它存在)
答案 2 :(得分:0)
正如@ asitm9所述,使用request.data
适用于POST
,PUT
和PATCH
,建议使用。
答案 3 :(得分:0)
当CONTENT_TYPE为“ multipart / form-data;”时,只需尝试使用MultiPartParser,否则QueryDict。
if request.META.get('CONTENT_TYPE', '').startswith('multipart'):
from django.http.multipartparser import MultiPartParser
query_dict, multi_value_dict = MultiPartParser(request.META, request,
request.upload_handlers).parse()
else:
from django.http import QueryDict
query_dict = QueryDict(request.body)