向嵌套序列化程序字段添加多个序列化程序

2024-09-30 01:25:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在序列化程序.py

class BusOncomingSerializer(serializers.Serializer):
    idn = serializers.IntegerField(read_only=True)
    stops_left = serializers.IntegerField(read_only=True)


class StopOncomingSerialier(serializers.Serializer):
    idn = serializers.IntegerField(read_only=True)
    buses = BusOncomingSerializer(many=True)

我的序列化程序实例在以下列表中有效:

^{pr2}$

我试图通过以下方式将这些BusOncomingSerializer实例添加到单个StopOncomingSerializer实例:

serializer = serializers.StopOncomingSerializers(data={"idn": 1, "buses": buses_serializers})

我运行is_valid()。然而,它提出:

TypeError: BusOncomingSerializer(data={'idn': 285, 'stops_left': 7}): idn = IntegerField(read_only=True) stops_left = IntegerField(read_only=True) is not JSON serializable

我不应该用列表添加序列化程序实例吗?在


环境

  • python 3.5.1
  • django 1.9.5款
  • django rest框架3.3.3

Tags: 实例程序trueonlyread序列化leftclass

热门问题