序列化数据到ArrayField(models.IntegerField(),default = list)字段

时间:2018-02-24 22:12:30

标签: json django serializer

我在postgres数据库中有以下字段:ArrayField(models.IntegerField(),default = list)。

当我从发布请求发送数据时,我收到以下错误: int()的基数为10的无效文字:' [176,68]'

虽然发送的数据是价格:[176,68] 这是我的价格序列化器:

class StringArrayField(ListField):
    """
    String representation of an array field.
    """
    def to_representation(self, obj):
        obj = super().to_representation( obj)
        # convert list to string
        return ",".join([(element) for element in obj])

    def to_internal_value(self, data):
        return super().to_internal_value( data)


class MySerializer(serializers.ModelSerializer):

    price = StringArrayField()

    class Meta:
        model = myModel
        fields =('price')

1 个答案:

答案 0 :(得分:0)

您必须将child序列化程序传递到列表字段。

price = serializers.ListField(
   child=serializers.IntegerField(min_value=0, max_value=100)
)