Django:创建多个具有相同模型架构的表

Abh*_*rma 1 django factory

我有一个 Django 模型,我需要从中派生出许多表。有点像工厂。所有表的架构相同,但表名不同。例如

class MyModel(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100,blank=False)

    class Meta:
        db_table = 'mytable'
Run Code Online (Sandbox Code Playgroud)

我需要在数据库中,我有表 mytable01、mytable02、mytable03 ...

在models.py 中执行此操作的最佳方法是什么

Mat*_*son 6

您可以子类化单个抽象模型。

# No table, since abstract = True
class BaseModel(models.Model):
    class Meta:
        abstract = True
    name = models.CharField(max_length=100,blank=False)

# Table name "myapp_submodel"
class SubModel(BaseModel):
    pass

# Table name "myapp_anothersubmodel"
class AnotherSubModel(BaseModel):
    nickname = models.CharField(max_length=100,blank=False)
Run Code Online (Sandbox Code Playgroud)

更多信息请访问https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes