Django models.Model超类

JBe*_*rdo 4 python django

我想创建一个models.Model类,它不会成为数据库的一部分,而只是其他模型的接口(我想避免重复代码).

像这样的东西:

class Interface(models.Model):
    a = models.IntegerField()
    b = models.TextField()

class Foo(Interface):
    c = models.IntegerField()

class Bar(Interface):
    d = models.CharField(max_length='255')
Run Code Online (Sandbox Code Playgroud)

所以我的数据库应该只有Foo(带有a,b,c列)和Bar(带a,b,d)但不能有表接口.

Ign*_*ams 11

"抽象基类"

当您想要将一些公共信息放入许多其他模型时,抽象基类非常有用.编写基类并放入abstract=TrueMeta类.然后,此模型不会用于创建任何数据库表.相反,当它用作其他模型的基类时,其字段将添加到子类的字段中.