Roo*_*iat 6 python migration django
我有以下型号。
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
Run Code Online (Sandbox Code Playgroud)
有一个AdBreakSerializer序列化模型的序列化器AdBreak。AdBreakStatus将模型导入到AdBreakSerializer文件中。现在AdBreakStatus模型已被检测并迁移。
这种方法的问题是,不使用导入,因此不遵循标准。
AdBreakStatus将模型类写入AdBreak. 这也将解决问题。
该makemigrations脚本查找从 连接的模型urls.py。该脚本先导航urls.py到所有视图集,然后导航到相应的序列化器和模型。
所有需要迁移的模型都应该出现在这个遍历的路径中。或者只有那些以这种方式遍历的模型才会被迁移。
| 归档时间: |
|
| 查看次数: |
3837 次 |
| 最近记录: |