【问题标题】:django import export app error: django.core.exceptions.AppRegistryNotReady: Models aren't loaded yetdjango import export app 错误:django.core.exceptions.AppRegistryNotReady:模型尚未加载
【发布时间】:2020-11-18 08:47:36
【问题描述】:

我正在将一个 Django 站点升级到 3.1.2,并注意到一个后端应用程序无法正常工作,在请求 community 帮助解决此问题的过程中,我发现该应用程序不是由该站点的单个编码器,但是一个名为 django-import-export 的社区项目。由于它是最新的并支持 django 3.1,因此我删除了手动将其设置为文件夹并 pip 安装它的方式。然后我尝试执行makemigrations 引发错误,在阅读设置文档后假设您可能需要先执行collectstatic,它也引发了同样的错误

(kpsga) sammy@kpsga:~/webapps/kpsga$ python manage.py collectstatic
Traceback (most recent call last):
File "manage.py", line 22, in <module>
    main()
File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/sammy/webapps/kpsga/guides/models.py", line 77, in <module>
    class GuideResource(resources.ModelResource):
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/import_export/resources.py", line 930, in __new__
    field = new_class.field_from_django_field(f.name, f,
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/import_export/resources.py", line 1079, in field_from_django_field
    FieldWidget = cls.widget_from_django_field(django_field)
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/import_export/resources.py", line 1045, in widget_from_django_field
    result = getattr(cls, result)(f)
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/import_export/resources.py", line 1025, in get_fk_widget
    model=get_related_model(field))
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/import_export/resources.py", line 49, in get_related_model
    if hasattr(field, 'related_model'):
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/db/models/fields/related.py", line 95, in related_model
    apps.check_models_ready()
File "/home/sammy/webapps/envs/kpsga/lib/python3.8/site-packages/django/apps/registry.py", line 141, in check_models_ready
    raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

这在某种程度上与 installed_apps 有关,所以我将整个列表包含在下面

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    #site apps
    'guides',
    'pages',

    #imported old dependencies
    'blog',
    'import_export',
    'generic',

    #imports
    'comments_moderation',
    'django_comments',
    'sorl.thumbnail',

    #additional django
    'django.contrib.sites',
    'django.contrib.humanize',
]

【问题讨论】:

  • 我不完全确定,但可能与信号有关,请参见此处:stackoverflow.com/questions/51081783/…
  • 检查您的模型并参考: from django.apps import AppConfig class ShareConfig(AppConfig): name = 'models.share' 然后在设置中添加模型的完整路径,例如:'models.common.apps .CommonConfig'

标签: python django django-import-export


【解决方案1】:

回溯显示在您的models.py 中加载GuideResource 时发生错误。

django-import-export 的getting started docs 建议将资源放在admin.py 中,所以我会尝试将GuideResource 移到models.py 之外。

【讨论】:

    猜你喜欢
    • 2016-03-11
    • 2015-11-12
    • 2014-10-21
    • 2017-09-16
    • 2016-10-05
    • 1970-01-01
    • 2016-08-04
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多