я сделать запрос на мой локальный сервер с помощью почтальона, как это:ФПИ - данные 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'>
Я пытаюсь ess для данных запроса в методе 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 Я не хочу переопределять отправку, я хочу выполнить некоторый код перед нормальным потоком представления. Но мне нужно получить доступ к request.data, прежде чем мой метод post (или get) будет выполнен. – Gocht