实现
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Animal</span><span class="hljs-params">(models.Model)</span>:</span>
name = models.CharField(max_length=<span class="hljs-number">20</span>)
age = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Cat</span><span class="hljs-params">(Animal)</span>:</span>
weight = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Meta</span><span class="hljs-params">()</span>:</span>
db_table = <span class="hljs-string">"cats"</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Dog</span><span class="hljs-params">(Animal)</span>:</span>
height = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Meta</span><span class="hljs-params">()</span>:</span>
db_table = <span class="hljs-string">"dogs"</span>
问题
注意
此方式不建议使用
原理
通过元信息将父类抽象化
实现
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Animal</span><span class="hljs-params">(models.Model)</span>:</span>
name = models.CharField(max_length=<span class="hljs-number">20</span>)
age = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Meta</span><span class="hljs-params">()</span>:</span>
<span class="hljs-comment">#将模型抽象化</span>
abstract = <span class="hljs-keyword">True</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Cat</span><span class="hljs-params">(Animal)</span>:</span>
weight = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Meta</span><span class="hljs-params">()</span>:</span>
db_table = <span class="hljs-string">"cats"</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Dog</span><span class="hljs-params">(Animal)</span>:</span>
height = models.IntegerField()
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Meta</span><span class="hljs-params">()</span>:</span>
db_table = <span class="hljs-string">"dogs"</span>
父类模型抽象化的作用