迁移应用程序中缺少 django 1.9 models_module
Posted
技术标签:
【中文标题】迁移应用程序中缺少 django 1.9 models_module【英文标题】:django 1.9 models_module missing in migration apps 【发布时间】:2016-05-22 21:40:43 【问题描述】:我正在从 django 1.8 迁移到 django 1.9。
我有一个迁移,它添加了一个组 user
,然后向该组添加了一个权限 django_comments.add_comment
。使用 django 1.8 的迁移看起来像这样
升级到 django 1.9 时,由于找不到内容类型,这会引发错误。这是因为当update_contenttypes
调用没有创建必要的content_types。该函数中有这一行(django's source code reference)
app_config.models_module
在 django 1.9 中是 None
,但在 django 1.8 中不是 None
如果我用这个代码替换它
def update_contenttypes(app_config, verbosity=2, interactive=True, using=DEFAULT_DB_ALIAS, **kwargs): 如果不是 app_config.models_module: #返回 经过 ...然后一切正常。
问题是我不想更改 django 的核心代码。如何在 django 1.9 中完成这项工作?
【问题讨论】:
【参考方案1】:好的,感谢#django IRC(用户 knbk)中的一些帮助,我找到了一个丑陋的解决方法,但至少它有效!
改变这两行
update_contenttypes(apps.get_app_config('django_cmets')) create_permissions(apps.get_app_config('django_cmets'))改写这个
app = apps.get_app_config('django_cmets') app.models_module = app.models_module 或 True 更新内容类型(应用程序) 创建权限(应用程序)现在它工作得很好。
【讨论】:
使用 Django 1.11 update_contenttypes 不再存在,改用 create_contenttypes以上是关于迁移应用程序中缺少 django 1.9 models_module的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Django 1.9 中迁移——奇怪的 SQL 错误 "django.db.utils.OperationalError: near ")": syntax er