是否有可能在Django中检索HTTP PATCH请求的请求参数? request.method == 'PATCH'
是公认的,但我很难找回请求的有效载荷。我试过request.REQUEST.items()
,但是这并没有包含任何数据。我知道我可以使用Django-tastypie,但在这种情况下,我想避免它(我认为tastypie无论如何都使用一些Django方法来检索这些数据)。在Django中获取PATCH请求参数
我正在使用Django 1.5.1。
是否有可能在Django中检索HTTP PATCH请求的请求参数? request.method == 'PATCH'
是公认的,但我很难找回请求的有效载荷。我试过request.REQUEST.items()
,但是这并没有包含任何数据。我知道我可以使用Django-tastypie,但在这种情况下,我想避免它(我认为tastypie无论如何都使用一些Django方法来检索这些数据)。在Django中获取PATCH请求参数
我正在使用Django 1.5.1。
raw_post_data的伎俩(我以前使用过,但忘记它的存在)
正如@ asitm9提到的,使用request.data
作品POST
,PUT
和PATCH
和建议。
你在说哪个版本的Django? –
'request.data'不包含任何内容 – Dave
您可以手动使用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']
[?Django的 - 当存储在一个把PARAMS/DELETE请求]的
可能重复(HTTP ://stackoverflow.com/questions/4994789/django-where-are-the-params-stored-on-a-put-delete-request) – falsetru
@falsetru:我不认为这是一个重复的问题(这一个是关于'PATCH' - 人们(像我)在寻找'PATCH'时可能找不到这个链接)。尽管如此,感谢链接 - 'raw_post_data'做了窍门(我之前使用过它,但忘记它存在)。 – orange
我发现上面的问题使用'PATCH','django'作为搜索关键字。 – falsetru