我有一个 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 中执行此操作的最佳方法是什么
您可以子类化单个抽象模型。
# 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