在 Django 中实现具有许多重叠字段的模型的最佳方法?



我需要实现以下逻辑:有一个大模型Base,其中包含许多字段,几个较小的模型与它共享一些字段子集以及彼此共享。例如,假设Base有字段abcdef;模型A有字段abg;模型B有字段bcdg;模型C具有字段defg

尝试从抽象模型中正确继承很快就会导致混乱,但是手动复制字段似乎也不是最佳的,因为主模型中的每个字段都存在于较小的字段中,因此必须列出两次。解决这个问题的好方法是什么?

你需要从Base继承并使其成为抽象的。
然后用None覆盖您不需要的字段。

Django 文档在这里提到了这一点。
Fields inherited from abstract base classes can be overridden with another field or value, or be removed with None.

最新更新