使用formdata时无法发送嵌套对象。由于我有大量的文件使用base64不是一个解决方案。目前的解决方案是使用JSON.stringify
从客户端product_timings
和发送它作为一个单一的领域,但我想知道如果正常模态字段与文件上传是可能的DRF.这是我的APIView
class ProductCreateApi(APIView):
permission_classes = [permissions.DjangoModelPermissions]
queryset = Product.objects.all().order_by("-created_at")
parser_class = [MultiPartParser, FormParser, JSONParser, FileUploadParser]
class ProductCreateSerializer(serializers.ModelSerializer):
class ProductCreateProductTimingSerializer(serializers.ModelSerializer):
class Meta:
model = ProductTiming
fields = ['start_time', 'end_time']
product_timings = ProductCreateProductTimingSerializer(write_only=True, many=True)
product_images = serializers.ListField(
child=serializers.ImageField(allow_empty_file=False, use_url=False),
write_only=True
)
class Meta:
model = Product
fields = '__all__'
在岗位上,我累了product_timings[0][start_time]: 09:30:00
product_timings[0][start_time]: 09:30:00
它仍然会抛出验证错误消息,如
{
"product_timings": [
{
"start_time": [
"This field is required."
],
"end_time": [
"This field is required."
]
}
]
}
请注意,product_images
的base64图像字段和product_timings
的单个JSON字段都不是我正在寻找的解决方案。
1条答案
按热度按时间1rhkuytd1#
您正在寻找的格式没有点,也没有辅助
[]
:products[0]starttime
这里有一个在python3.6或更高版本中完成此操作的辅助函数,但它很容易适应。
输出的更长示例:
转换为: