【发布时间】:2017-08-22 22:47:08
【问题描述】:
我有以下型号。
BaseClass1 和 BaseClass2 是模型使用的抽象模型。
在这种情况下,模型AdBreak 由视图集和序列化程序使用。
当我运行python manage.py makemigrations 时,会检测到AdBreak 模型的变化。未创建模型 AdBreakStatus。
由于AdBreakStatus 与AdBreak 相关联,我也期待AdBreakStatus 的迁移。是不是我的理解错了?
编辑
在初始状态下,只有 AdBreak 和 BaseClass1 模型。添加了新状态、AdBreakStatus 和 BaseClass2 模型。 AdBreak 中的一些字段已移至 AdBreakStatus。
提前感谢您的帮助。
class BaseClass1(models.Model):
class Meta:
abstract=True
timestamp = models.DateTimeField(auto_now_add=True)
class BaseClass2(models.Model):
class Meta:
abstract=True
other_field = models.IntegerField()
class AdBreak(BaseClass1):
class Meta:
db_table = "ad_break"
ad_break_id = models.AutoField(primary_key=True)
... # Other fields
class AdBreakStatus(BaseClass2):
class Meta:
db_table = "ad_break_status"
ad_break = models.ForeignKey(AdBreak)
... # Other Fields
【问题讨论】:
-
数据库迁移将数据库从一种状态转换为另一种状态。您只向我们展示了一个状态;在无法回答之前不知道您的模型(或表格)的外观。
-
初始状态只有AdBreak和BaseClass1模型。添加了新状态、AdBreakStatus 和 BaseClass2 模型。 AdBreak 中的一些字段已移至 AdBreakStatus。
-
@Chris :如果我添加一个指向
AdBreakStatus的视图集,则会检测到迁移。还有其他方法吗?