模型继承

时间:2013-02-09 09:52:44

标签: django django-models

在所有模型继承中使用哪个更好?为什么?我不知道它,所以我想知道哪个更好,或更有用,以便我知道我会用于哪个特定场景。

  • 抽象基类
  • 多表继承
  • 代理模型

1 个答案:

答案 0 :(得分:1)

这些技术中的每一种都提供不同的好处。这实际上取决于你需要做什么。

最好的起点是阅读model inheritance docs

抽象基类

如果您只是想减少写入的代码量,请使用这些。如果您知道多个字段出现在多个模型中,那么请编写基类并继承它。

多表继承

如果您想要一个可以查询和操作的具体基类,这很有用 - 例如Base.objects.all()有点像在同一个查询集中看到Child1.objects.all()Child2.objects.all()。< / p>

代理模型

如果每个模型的所有字段都相同,请使用代理模型。每个对象都有一个db元组,但该db元组可用于表示父元组或代理。这是非常强大的,如果你的领域是相同的,几乎可以肯定的是。