了解当时被序列化的对象数量。 DRF

问题描述 投票:0回答:1

我有一个序列化器,可以序列化一个对象。有没有办法知道当时是序列化一个对象还是多个对象?

我有一个序列化器,其中有一个自定义方法字段。如果它正在序列化单个对象,我需要调用一个 API,或者如果它正在序列化多个对象,我需要调用另一个 API。

python-3.x django django-models django-rest-framework django-serializer
1个回答
1
投票

在序列化器中,您可以覆盖

__new__
__init__
魔术方法,如下所示:

class MySerializer(serializer.ModelSerializer):
        def __new__(cls, *args, **kwargs):
            kwargs.update({"has_many": kwargs.get("many", False)})
        
        def __init__(self, *args, **kwargs):
           super().__init__(*args, **kwargs)
           has_many = self.context["has_many"]

因此,当您序列化数据时,您可以随时检查序列化器是否已使用

many=True/False
实例化,并基于此执行需要执行的操作。

© www.soinside.com 2019 - 2024. All rights reserved.