在所有模型继承中使用哪个更好?为什么?我不知道它,所以我想知道哪个更好,或更有用,以便我知道我会用于哪个特定场景。
答案 0 :(得分:1)
这些技术中的每一种都提供不同的好处。这实际上取决于你需要做什么。
最好的起点是阅读model inheritance docs。
抽象基类
如果您只是想减少写入的代码量,请使用这些。如果您知道多个字段出现在多个模型中,那么请编写基类并继承它。
多表继承
如果您想要一个可以查询和操作的具体基类,这很有用 - 例如Base.objects.all()
有点像在同一个查询集中看到Child1.objects.all()
和Child2.objects.all()
。< / p>
代理模型
如果每个模型的所有字段都相同,请使用代理模型。每个对象都有一个db元组,但该db元组可用于表示父元组或代理。这是非常强大的,如果你的领域是相同的,几乎可以肯定的是。