DRF - сериализатор для списка словарей

У меня есть класс сериализатора, который возвращает "одиночные" данные, например:

class MySerializer(serializers.Serializer):
    num: Decimal = serializers.DecimalField(max_digits=10, decimal_places=4, required=True
    uid: str = serializers.CharField(max_length=30, required=True)

.

Я хотел бы добавить параметр (other) к этому сериализатору, который бы возвращал список словарей, но не могу найти, как это сделать.

Структура других будет выглядеть следующим образом:

[
    {'p1': int,
    'p2': int,
     'p3': {another dict which has already a serializer class}
    }
]

Каким способом можно этого достичь?

Если я добавляю serializers.DictField или serializers.ListField, я всегда получаю ответ "'list' object has no attribute 'items' AttributeError" или "Object of type PoCo is not JSON serializable TypeError", где PoCo - это мой класс.

Использовать serializers.SerializerMethodField.

class MySerializer(serializers.Serializer):
    num: Decimal = serializers.DecimalField(max_digits=10, decimal_places=4, required=True
    uid: str = serializers.CharField(max_length=30, required=True)
    other = serializers.SerializerMethodField("get_other_filed)

    def get_other_field(self,obj):
        result = {} # Your dict
        return result
Вернуться на верх