Django:使用相同的模型架构创建多个表

时间:2013-12-12 03:43:25

标签: django factory

我有一个Django模型,我需要从中获得许多表。像工厂一样的东西。 所有表的模式都相同,但表名不同。 e.g。

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

    class Meta:
        db_table = 'mytable'

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

在models.py

中执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

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

# 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)

https://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes

的更多信息