在所有模型继承中哪个更好用,为什么?我对此一无所知,所以我想知道哪个更好或更有用,以便我知道我将在该特定场景中使用哪个。
- 抽象基类
- 多表继承
- 代理模型
这些技术中的每一种都提供不同的好处。这真的取决于你需要做什么。
最好的起点是阅读模型继承文档。
抽象基类
如果您只是想减少编写的代码量,请使用这些。如果您知道多个模型中出现多个字段,则编写一个基类并继承它。
多表继承
如果您想要一个可以查询和操作的具体基类,这很有用 - 例如Base.objects.all()
有点像在同一个查询集中看到Child1.objects.all()
和。Child2.objects.all()
代理模型
如果每个模型的所有字段都相同,则使用代理模型。您为每个对象获得一个 db 元组,但该 db 元组可用于表示父级或代理。这是非常强大的,如果您的字段相同,几乎可以肯定要走的路。