У меня есть конечная точка API, в которой клиенты отправляют объект JSON (чтобы пригласить сразу нескольких пользователей к проекту).Django Rest Framework .DATA-атрибут, возвращающий только первый элемент массива
Мой тест выглядит следующим образом:
def test_new_style(self):
note = 'this is a note'
payload = {
'invites': [
{
'email': '[email protected]',
'note': note
},
{
'email': '[email protected]',
'note': note
}
]
}
# self.u1_client is a rest_framework.test.APIClient object
response = self.u1_client.post('/api/projects/1/invite', payload)
И у меня есть APIView, который выглядит как:
class InviteMember(APIView):
permission_classes = (IsAuthenticated,)
def post(self, request, project_pk):
import pdb; pdb.set_trace()
я землю в оболочке, и сделайте следующее:
(Pdb) request
<rest_framework.request.Request object at 0x106bb4910>
(Pdb) request.DATA
<QueryDict: {u'invites': [u"{'note': 'this is a note', 'email': '[email protected]'}", u"{'note': 'this is a note', 'email': '[email protected]'}"]}>
(Pdb) request.DATA['invites']
u"{'note': 'this is a note', 'email': '[email protected]'}"
Странно, правда? Как я могу получить доступ к массиву пригласительных словарей? Почему атрибут DATA не дает мне объект?
Джанго: v1.7.4
Джанго Rest Framework: v2.4.4
Действительно. В настоящее время мы создадим полезное сообщение об ошибке, если вложенные структуры передаются в многопроцессорный кодер в тестовых случаях. –
@TomChristie, это очень полезно, спасибо. Кроме того, спасибо за DRF, приятно работать с такой хорошо разработанной инфраструктурой. – joerick