【发布时间】:2019-11-18 17:21:56
【问题描述】:
我有一个类FirstName 需要重命名为SecondName,但这个类也用作其他模型的基类。
# file 1
class FirstName(models.Model):
pass # stuff
# file 2
from firstfile.models import FirstName
class ProxyModel(FirstName):
pass # stuff
我尝试更新模型名称以及对它的所有引用...
# file 1
class SecondName(models.Model):
pass # stuff
# file 2
from firstfile.models import SecondName
class ProxyModel(SecondName):
pass # stuff
# migration
operations = [
migrations.RenameModel(
old_name='FirstName',
new_name='SecondName',
),
]
但是当我运行 makemigrations 或“迁移”时,我得到一个错误:
django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [<ModelState: 'my_app.ProxyModel'>] This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth) in an app with no migrations;
在迁移之前我似乎无法导入重命名的基模型,但在解决基类问题之前我无法迁移...
我已经尝试为 Proxy 基类使用以前的模型名称,但得到模型未找到错误。我还尝试注释掉代理模型,但仍然出现错误(我认为是因为该代理模型已经运行了迁移)。
如何绕过这个重命名依赖循环?
Python 2.7、Django 1.11
【问题讨论】:
标签: python django python-2.7