Post 从 HTML/axios 到 multipart/form-data 到 DRF 多部分解析器的对象列表
Post LIST OF OBJECTS from HTML/axios with multipart/form-data to DRF multipart parser
这是我的序列化程序:
class ParentSerializer(serializers.ModelSerializer):
children = ChildSerializer(many=True) # reverse FK relation
ParentSerializer
也有图像字段,因此请求必须 multipart/form-data 才能在单个请求中同时支持图像和数据。
以下 code/test 工作正常:
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
列表。
问题是我无法通过 axios/HTML 表单执行相同的操作。正在发送的数据被转换为字符串。
我有哪些选择?我想连同其他数据一起发送子对象列表。
DRF v3.9
& Django v2.2
.
您的字段必须按以下形式命名 children[0]key1
、children[0]key2
、children[1]key1
、children[1]key2
注意]
和键名
之间没有点.
这是我的序列化程序:
class ParentSerializer(serializers.ModelSerializer):
children = ChildSerializer(many=True) # reverse FK relation
ParentSerializer
也有图像字段,因此请求必须 multipart/form-data 才能在单个请求中同时支持图像和数据。
以下 code/test 工作正常:
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
列表。
问题是我无法通过 axios/HTML 表单执行相同的操作。正在发送的数据被转换为字符串。
我有哪些选择?我想连同其他数据一起发送子对象列表。
DRF v3.9
& Django v2.2
.
您的字段必须按以下形式命名 children[0]key1
、children[0]key2
、children[1]key1
、children[1]key2
注意]
和键名
.