首页 > 解决方案 > 为什么在 Django 启动时要实例化序列化程序?

问题描述

我正在使用 Django rest 框架,我很困惑当 Django 启动时序列化程序将被实例化。

我怎样才能阻止这种行为?

class MySerializer(ModelSerializer):
    def __init__(self):
        print('hello!') # <= this called when django starts!!

附言

原因是序列化程序被调用为其他序列化程序的类字段属性(作为嵌套字段)。所以在作为模块导入MySerializer时被实例化。AnotherSerializer

class AnotherSerializer(ModelSerializer):
    some_nested_field = MySerializer()

所以,我想知道的是如何MySerializer仅在实际请求到达时才实例化,而不是在加载模块时实例化?

标签: djangodjango-rest-framework

解决方案


推荐阅读