提问人:Vince 提问时间:6/10/2020 最后编辑:Vince 更新时间:7/2/2020 访问量:106
无法将 Django 从 1.7 迁移到 1.8
Cannot migrate Django from 1.7 to 1.8
问:
将 django 1.7 升级到 1.8 时(最终目标是将 1.4 迁移到 1.11LTS) 我被要求从我的INSTALLED_APPS中删除 SOUTH
很好,但后来我得到:
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
所以我尝试添加设置文件:
import django
django.setup()
但它在运行时带来了这个错误,这让我认为这不是正确的方式:
AUTH_USER_MODEL refers to model 'auth.User' that has not been installed
我的INSTALLED_APPS:
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.staticfiles',
'mptt',
# 'south',
'main',
'proxy',
'picocms',
'django.contrib.admin',
'reports',
'django_orphaned'
请注意,如果我注释“main”(我的主代码文件夹)和“picocms”(一个过时的库),则不会再引发 AppRegistryNotReady 异常(但显然没有它,项目就无法工作)
有人成功经历过同样的问题吗?
stackTrace(获取信息)
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
django.setup()
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/Cellar/python@2/2.7.15_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File ".../workspace/django/cms/main/models.py", line 19, in <module>
from picocms.models import CMSModel, CMSCategory, ActiveModelManager, PublicModelManager
File ".../.virtualenvs/migre/lib/python2.7/site-packages/picocms/models.py", line 13, in <module>
class CMSCategory(MPTTModel):
File ".../.virtualenvs/migre/lib/python2.7/site-packages/mptt/models.py", line 189, in __new__
return meta.register(cls)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/mptt/models.py", line 273, in register
manager.init_from_model(cls)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/mptt/managers.py", line 58, in init_from_model
[tree_field] = [fld for fld in model._meta.get_fields_with_model() if fld[0].name == self.tree_id_attr]
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 56, in wrapper
return fn(*args, **kwargs)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 432, in get_fields_with_model
return [self._map_model(f) for f in self.get_fields()]
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 740, in get_fields
return self._get_fields(include_parents=include_parents, include_hidden=include_hidden)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 802, in _get_fields
all_fields = self._relation_tree
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/utils/functional.py", line 60, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 709, in _relation_tree
return self._populate_directed_relation_graph()
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/db/models/options.py", line 681, in _populate_directed_relation_graph
all_models = self.apps.get_models(include_auto_created=True)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
result = user_function(*args, **kwds)
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/apps/registry.py", line 168, in get_models
self.check_models_ready()
File ".../.virtualenvs/migre/lib/python2.7/site-packages/django/apps/registry.py", line 131, in check_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
答:
0赞
Vince
7/2/2020
#1
我升级了 picocms 弃用的项目并将 mptt 版本切换到 0.9.0,它起作用了。
但实际上,我的时间最好花在用 python 3 和 Django 2.2 编写新版本的项目上
评论
django.setup()
settings.py
main
picocms
AppRegistryNotReady