Опубликовать список объектов с топором ios? - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь опубликовать список объектов с помощью Ax ios, но не могу заставить его работать. Я работаю с интерфейсом React и Django (python).

Я хочу POST данные, подобные этим:

[
  {
    invitee: "..."
    party: "..."
  }, {
    invitee: "..."
    party: "..."
  },
  ...
]

Моя первая мысль была просто взять массив в качестве атрибута данных ax ios:

const res = await authAxios.post(`/conversations/invitations/`, toAPIArr);

Я также пытался JSON.stringify Array, но в бэкэнде я всегда получаю сообщение об ошибке, что я не отправка списка. Я делаю простую проверку (это python):

isinstance(request.data, list) --> always false

Есть ли что-то очевидное, что я здесь не так делаю?

Править : Я использую django -rest-framewok на сервере:

Просмотр

class PartyList(APIView):
    def post(self, request, format=None):
        print(isinstance(request.data, list))
        serializer = PartySerializer(data=request.data, many=True)
        user = request.user
        if serializer.is_valid():
            instances = serializer.save(creator=user)
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

Сериализатор

class PartySerializer(ModelSerializer):
    creator = ReadOnlyField(source='creator.uuid')
    class Meta:
        model = Invitation
        fields = (
            'invitee',
            'party',
        )
        read_only_fields = (
            'uuid',
        )

1 Ответ

0 голосов
/ 31 января 2020

Был один ответ на этот вопрос, который фактически был опущен и удален, что дало мне одно рабочее решение.

Можно отправить объект с топором ios:

const res = await authAxios.post(`/conversations/invitations/`, {list: toAPIArr});

Из бэкэнда можно получить доступ к этому списку (это python):

arr = request.data.get('list')

Это что-то вроде хака, но пока у меня это работает. Если есть правильный путь (подразумевая, что это может быть неправильный способ), возможно, найдется кто-то, кто поделится этим.

...