这取决于外键的方向。抽象类不能有外键。
也许你感兴趣的是通用关系或抽象模型类中的外键。
尽管请注意继承始终是一种is-a
关系,而正常的外键用法暗示着一种has-a
关系。
在您的示例中,Customer
不应继承自Account
客户拥有帐户。
一个继承的例子是一个地方,它要么是餐厅,要么是电影院等。
评论后编辑:
好吧,文档中有一个自己的部分:
类继承和模型管理器并不是彼此完美的匹配。管理器通常特定于定义它们的类,在子类中继承它们不一定是个好主意。此外,因为声明的第一个管理器是默认管理器,所以允许对其进行控制很重要。下面是 Django 处理自定义管理器和模型继承的方式:
...
- 抽象基类的管理器总是由子类继承,使用 Python 的正常名称解析顺序(子类上的名称覆盖所有其他名称;然后是第一个父类上的名称,依此类推)。抽象基类旨在捕获其子类共有的信息和行为。定义共同管理者是该共同信息的适当部分。
- 类的默认管理器是在该类上声明的第一个管理器(如果存在),或者是父层次结构中第一个抽象基类的默认管理器(如果存在)。如果没有显式声明默认管理器,则使用 Django 的正常默认管理器。
如果继承的类以某种方式属于同一范围,我只会这样做。
如果你真的有这么多的类,在这些类中添加一行很重要,那么你可能没有一个好的数据库或应用程序设计。
并且尽量不要把所有东西都放在一位经理身上,只是为了能够在很多课程中只使用一位经理。