DRF如何限制序列化程序的深度?

2024-04-25 22:57:07 发布

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

我有许多模型,并使用DRF作为restapi

几乎每个序列化程序都是nested。这会导致这样一个问题:ModelASerializer被多次嵌套,因为它使用了ModelBSerializer,而它使用了ModelCSerializer。。。等等

class ModelBSerializer(..):
    modelcs = ModelCSerializer(...)

    class Meta:
        fields = '__all__'

class ModelASerializer(..):
    modelbs = ModelBSerializer(many=True..)

    class Meta:
        fields = '__all__'

问题是,它明显减慢了一切。我认为如果我将depth=2/1添加到ModelASerializer.Metamodelcs将不会被序列化,因为它们是嵌套的2/1级别。但它仍然序列化所有内容。有可能使它工作吗

我可以创建新的序列化程序,但这将更加优雅


Tags: 模型程序restapifields序列化allmetadrf