如何设置默认序列化程序实例的列表?

2024-06-16 10:07:48 发布

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

我有一些序列化程序

class FruitSerializer(serializers.Serializer):
    id = serialiser.IntegerField()
    name = serializers.CharField()

class BucketSerialiser(serializers.Serializer):
    id = serialiser.IntegerField(required=False, default = 1)
    fruits = FruitSerializer(required=False, many=True)

我想在BucketSerialiser.fruits中设置默认值,如果最初没有设置。 比如说

bucket = BucketSerialiser(data={'id': 1})
...
buket.data -> // it should return the default fruits data. e.g {'id': 1, 'fruits': [{'id': 1, 'name': 'Apple'}, {'id': 2, 'name':'Orange'}].

我试着这样做

class BucketSerialiser(serializers.Serializer):
    id = serialiser.IntegerField(required=False, default = 1)
    fruits = FruitSerializer(required=False, many=True, default = [
        FruitSerializer(data={'id': 1, 'name': 'Apple'}),
        FruitSerializer(data={'id': 2, 'name': 'Orange'})]
    

但它不起作用。如何正确实施


Tags: nameidfalsedefaultdatarequiredmanyclass