django.db.migrations.exceptions.nodenotfounderror升级django时出错

ds97pgxw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(598)

我正在升级我的django项目 django1.5django1.11.10 . 当我运行时升级时 ./manange.py migrate 我要走了 django.db.migrations.exceptions.NodeNotFoundError ```
django.db.migrations.exceptions.NodeNotFoundError: Migration account.0004_auto_20180419_1309 dependencies reference nonexistent parent node (u'admin', u'0003_advertisements_alignedcourses_api_integration_appreciation_certificate_company_company_types_contrib')enter code here

这是我的项目结构
![](https://i.stack.imgur.com/kNyd1.jpg)
管理员/apps.py

class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'admin_app'

帐户/apps.py

class AccountConfig(AppConfig):
name = 'account'
label = 'account_app'

我为所有管理模型添加了元属性

class Meta:
'''
Meta properties for this model
'''
app_label = 'admin_app'

我在我的项目中找不到任何迁移文件,我遵循了在internet上找到的一些解决方案。
django.db.migrations.exceptions.nodenotfounderror迁移身份验证不存在父节点
无法摆脱django1.11中的“不存在的父节点”
我重新安装了django.deleted all `.pyc` 文件夹。已删除所有迁移文件。但我还是犯了同样的错误。请帮助我,你能解释一下为什么会这样吗?
smdnsysy

smdnsysy1#

可能你有同名的应用程序-你自己的应用程序名为 admin 以及 django.contrib.admin . 无论应用程序的完整python路径是什么,最终部分都是重要的部分,需要在整个项目中保持唯一性。
你可以试着改变主意 labelAppConfig 与django或其他第三方应用程序冲突的应用程序。
看看django的文件https://docs.djangoproject.com/en/1.11/ref/applications/#django.apps.appconfig.label
appconfig.label文件
应用程序的简称,例如“admin”
此属性允许在两个应用程序具有冲突标签时重新标记应用程序。它默认为name的最后一个组件。它应该是一个有效的python标识符。
它在django项目中必须是唯一的。
在django的源代码中https://github.com/django/django/blob/stable/1.11.x/django/apps/config.py#l31-l34级


# Last component of the Python path to the application eg. 'admin'.

# This value must be unique across a Django project.

if not hasattr(self, 'label'):
    self.label = app_name.rpartition(".")[2]

相关问题