django - 为什么在 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
仅在实际请求到达时才实例化,而不是在加载模块时实例化?
解决方案
推荐阅读
- android - ViewPager 滑动无法在滚动 recylerView 上正常工作
- android - 为什么 Google Play 登录时会显示“确认您的选择”额外弹出窗口?
- javascript - 以下语法在 Javascript 中的单引号内使用按位 NOT 运算符和带冒号的方括号表示什么?
- python - AttributeError:模块“火炬”没有属性“__version__”
- cloud - 使用智能合约部署云服务
- angular - Angular 在父元素中添加子元素的位置
- amazon-web-services - 在 AWS EC2 上使用 OWASP ZAP(和相同目的的工具)
- regex - Google 表格 - 删除所有 HTML 标签,除了和标签
- c# - 如何使用 C# 的 File.WriteAllBytes() 在已安装的驱动器上写入?
- amazon-web-services - 无法从我的 linux shell 打开 ssh 隧道(EC2 暴露 RDS db)