我使用郵遞員這樣做的請求到我的本地服務器:DRF - 訪問請求的POST數據
正如你可以看到它是一個post請求。在我看來(APIView
)我需要訪問json數據。但是,當我嘗試:
request.POST
# <QueryDict: {}>
或
request.data # ¿?
# AttributeError: 'WSGIRequest' object has no attribute 'data'
的唯一途徑,我可以看到發送的數據是,當我訪問
request.body
# '{\n "token": "6J3qG4Ji2Jw44eIklKvPYxUgclfGRWHZDKG",\n "city": "Port Orange",\n "state": "FL",\n "formatted_address": "Peach Blossom Blvd 5329",\n "_zip": "32128"\n}'
但這是一個'str'
>>> type(request.body)
<type 'str'>
我試圖符合請求dispatch()
方法中的請求數據。我可以這樣做:
req = self.initialize_request(request)
這會返回一個rest_framework.request.Request
對象,我可以訪問請求數據。但我不能叫
super(FaveoAPIView, self).dispatch(request, *args, **kwargs)
因爲我得到:
{
"status_code": 400,
"object": "Malformed request.",
"success": false
}
我can'r明白爲什麼,我想,當我打電話self.initialize_request()
什麼變化。任何想法?
你在這裏試圖解決的實際問題是什麼?在大多數情況下,重寫dispatch()方法實際上並不是解決問題的最佳方法。 –
@JoeyWilhelm我不想重寫dispatch,我想在普通視圖流程之前執行一些代碼。但是在我的post(或get)方法執行之前,我需要訪問request.data。 – Gocht