将具有 multipart/form-data 的 HTML/axios 中的对象列表发布到 DRF 多部分解析器

2024-01-08

这是我的序列化器:

class ParentSerializer(serializers.ModelSerializer):
    children = ChildSerializer(many=True)  # reverse FK relation

ParentSerializer还有一个图像字段,因此请求必须是 multipart/form-data 才能在单个请求中同时支持图像和数据。

以下代码/测试工作正常:

test_data = QueryDict('', mutable=True)
dictionary = {
    'name': ['test'],
    'children[0]': [{'key1': 'val1', 'key2': 'val2'}]
}
test_data.update(MultiValueDict(dictionary))

test_serializer = self.get_serializer(data=test_data)
test_serializer.is_valid(raise_exception=True)
test_instance = test_serializer.save()

...因为我正在手动创建children list.

问题是我无法通过 axios/HTML 表单执行相同的操作。发送的数据被转换为字符串。

我有什么选择?我想发送子对象列表以及其他数据。

DRF v3.9 & Django v2.2.


您的字段必须按以下形式命名children[0]key1, children[0]key2, children[1]key1, children[1]key2

注意没有点.在。。之间]和键名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将具有 multipart/form-data 的 HTML/axios 中的对象列表发布到 DRF 多部分解析器 的相关文章

随机推荐