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

时间:2018-09-09 00:17:36

标签: django

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

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

1 个答案:

答案 0 :(得分:1)

您需要继承Base并将其设为abstract
然后使用None覆盖不需要的字段。

Django文档提到this here
Fields inherited from abstract base classes can be overridden with another field or value, or be removed with None.