我正在尝试使用Axios发布对象列表,但无法正常工作。我正在使用React前端和Django(python)后端。
我要POST
这样的数据:
[
{
invitee: "..."
party: "..."
}, {
invitee: "..."
party: "..."
},
...
]
我的第一个想法是将数组作为axios的数据属性:
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',
)
答案 0 :(得分:0)
这个问题有一个答案,实际上是被否决并删除了,为我提供了一个可行的解决方案。
可以使用axios发送对象:
const res = await authAxios.post(`/conversations/invitations/`, {list: toAPIArr});
然后可以从后端访问此列表(这是python):
arr = request.data.get('list')
这有点骇人听闻,但到目前为止对我来说还是可行的。如果有正确的方法(暗示这可能是错误的方法)来执行此操作,则可能会有人共享它。