2013-09-26 144 views
2

是否有可能在Django中檢索HTTP PATCH請求的請求參數? request.method == 'PATCH'是公認的,但我很難找回請求的有效載荷。我試過request.REQUEST.items(),但是這並沒有包含任何數據。我知道我可以使用Django-tastypie,但在這種情況下,我想避免它(我認爲tastypie無論如何都使用一些Django方法來檢索這些數據)。在Django中獲取PATCH請求參數

我正在使用Django 1.5.1。

+2

可能重複(HTTP ://stackoverflow.com/questions/4994789/django-where-are-the-params-stored-on-a-put-delete-request) – falsetru

+1

@falsetru:我不認爲這是一個重複的問題(這一個是關於'PATCH' - 人們(像我)在尋找'PATCH'時可能找不到這個鏈接)。儘管如此,感謝鏈接 - 'raw_post_data'做了竅門(我之前使用過它,但忘記它存在)。 – orange

+1

我發現上面的問題使用'PATCH','django'作爲搜索關鍵字。 – falsetru

回答

0

raw_post_data的伎倆(我以前使用過,但忘記它的存在)

0

正如@ asitm9提到的,使用request.data作品POSTPUTPATCH和建議。

+0

你在說哪個版本的Django? –

+0

'request.data'不包含任何內容 – Dave

0

您可以手動使用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請求]的