gpt4 book ai didi

python - Django Rest 框架 : Serialize an Array in a multipart/form-data request

转载 作者:行者123 更新时间:2023-12-04 13:54:42 26 4
gpt4 key购买 nike

我正在尝试使用 multipart/form-data 发送列表/数组。ModelSerializer使用定义该字段

class RequestSerializer(serializers.ModelSerializer):
# ...
in_categories = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
Model字段定义为
class Request(models.Model):
# ....
in_categories = models.ManyToManyField(to='Category',
through='RequestToCategory',
blank=False)
现在,我收到了 ModelViewSet定义如下:
class RequestViewSet(viewsets.ModelViewSet):
# ...
def create(self, request, *args, **kwargs):
print(request.data)
serializer = self.get_serializer(data=request.data)
print(serializer.is_valid(raise_exception=True))
print(serializer.validated_data)
然而, in_categories字段永远不会填充实际数据,验证器也不会 raise调用时出现异常。
我没有找到以字段实际获取定义的键列表的方式传输数据的任何方法。我尝试了三件事:
  • 将数据作为文字发送导致 request.data = <QueryDict: { ... 'in_categories': ['[2, 3]'] ...
  • 将数据作为数组发送导致 request.data = <QueryDict: { ... 'in_categories[0]': ['2'], in_categories[1]': ['3'] ...
  • 将数据作为带有额外键的数组发送导致 request.data = <QueryDict: { ... 'in_categories[0]id': ['2'], in_categories[1]id': ['3'] ...

  • 每个解 (i) 到达 ViewSet , (ii) 验证正确,但 (iii) 不是 反射(reflect)到 serializer.validated_data .
    我错过了什么吗?我已经花了几个小时在这上面,没有找到如何让 DRF 理解我想要的解决方案。

    最佳答案

    为了我

    Request = json.loads(json.dumps(request.data))
    已解决问题

    关于python - Django Rest 框架 : Serialize an Array in a multipart/form-data request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64500753/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com