我看到我可以在运行时轻松修改 Serializer 的 Meta 选项(我什至不确定这是调用它的正确方法,我读到有人称它为猴子补丁,即使我不喜欢它):
NodeDetailSerializer.Meta.fields.append('somefield')
如果我需要执行以下操作怎么办:
NodeDetailSerializer.contact = serializers.HyperlinkedIdentityField(view_name='api_node_contact', slug_field='slug')
NodeDetailSerializer.Meta.fields.append('contact')
为什么我需要这样做?我正在尝试构建一个模块化应用程序,我有一些可以添加的可选应用程序,它们会自动将一些功能添加到核心应用程序中。我想将两个应用程序的代码分开,因为其他应用程序可能会移动到不同的存储库中。
编写模块化和可扩展的应用程序确实是一项棘手的工作。如果有人有一些有用的资源可以分享,想知道更多。
费德里科