当前位置: 首页 > 面试题库 >

Django 1.7升级错误:AppRegistryNotReady:模型尚未加载

冀耀
2023-03-14
问题内容

我正在尝试将项目从Django 1.6升级到1.7。到目前为止,我已经使用相同的安装创建了一个新的virtualenv,并将Django版本升级到了新版本。我需要从南方升级,但是这样做有错误,所以我认为我最初只是尝试运行服务器,然后出现以下错误:

Traceback (most recent call last):
      File "manage.py", line 10, in <module>
        execute_from_command_line(sys.argv)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
        utility.execute()
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
        django.setup()
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
        app_config.import_models(all_models)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/apps/config.py", line 197, in import_models
        self.models_module = import_module(models_module_name)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "/Users/Name/Dev/tps/products/models.py", line 127, in <module>
        watson.register(Product.objects.exclude(productimage=None))
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/manager.py", line 92, in manager_method
        return getattr(self.get_queryset(), name)(*args, **kwargs)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/query.py", line 698, in exclude
        return self._filter_or_exclude(True, *args, **kwargs)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/query.py", line 707, in _filter_or_exclude
        clone.query.add_q(~Q(*args, **kwargs))
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1287, in add_q
        clause, require_inner = self._add_q(where_part, self.used_aliases)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1314, in _add_q
        current_negated=current_negated, connector=connector)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1138, in build_filter
        lookups, parts, reffed_aggregate = self.solve_lookup_type(arg)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1076, in solve_lookup_type
        _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1339, in names_to_path
        field, model, direct, m2m = opts.get_field_by_name(name)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/options.py", line 416, in get_field_by_name
        cache = self.init_name_map()
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/options.py", line 445, in init_name_map
        for f, model in self.get_all_related_m2m_objects_with_model():
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/options.py", line 563, in get_all_related_m2m_objects_with_model
        cache = self._fill_related_many_to_many_cache()
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/db/models/options.py", line 577, in _fill_related_many_to_many_cache
        for klass in self.apps.get_models():
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/utils/lru_cache.py", line 101, in wrapper
        result = user_function(*args, **kwds)
      File "/Users/Name/.virtualenvs/test17/lib/python2.7/site-packages/django/apps/registry.py", line 168, in get_models
        self.check_models_ready()
      File "/Users/Name/.virtualenvs/test17/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.

有什么想法可能导致错误,以及如何解决该错误?


问题答案:

问题在于此行(“ /Users/Name/Dev/tps/products/models.py”,第127行):

watson.register(Product.objects.exclude(productimage=None))

你尝试在导入时引用模型。在Django 1.7中不再可用。Django 1.7允许你仅在所有应用程序加载后才能使用模型。你应该将此调用移至的ready回调AppConfig,如下所示:

from django.apps import AppConfig


class ProductsConfig(AppConfig):
    name = 'products'

    def ready(self):
        Product = self.get_model('Product')
        watson.register(Product.objects.exclude(productimage=None))

那么你应该参考这个AppConfig在__init__.py你的products应用程序

default_app_config = 'products.apps.ProductsConfig'

哪里apps是你把配置模块的名称。



 类似资料:
  • 问题内容: 从1.8升级到django 1.9时,出现此错误。我检查了类似问题的答案,但我认为这不是任何第三方软件包或应用程序的问题。 我已经为“ django.contrib.auth”修改了已安装的应用程序。 问题答案: 尝试将以下行添加到设置文件的顶部: 并且如果这不能帮助你尝试从已安装的应用程序列表中逐一删除第三方应用程序。

  • 嘿,朋友们,我是djongo的新手,在练习它的用法时,我不断地遇到这个错误 文件“D:\python\django Rest-webs\tms-Rest-API\BACKEND\bckend\students\models.py”,第6行,课堂学生(models.Model):文件“D:\python\django Rest-webs\tms-Rest-API\BACKEND\bckend\stu

  • 我知道以前有人问过这个问题,但我找不到适合我的问题。我正在使用mongo为我的项目创建模式并创建路由,但由于某些原因,它一直给我一个错误。 扔新的猫鼬。错误。MissinSchemaError(名称);^MongooseError[MissinSchemaError]:模式尚未注册为模型“项目”。使用mongoose.model(名称,模式)在Mongoose.model(C:\用户\samib\

  • 问题内容: 这是Windows系统上的追溯。 我的manage.py看起来像这样: 当我尝试在Django 1.7中使用注册应用程序时出现此错误 问题答案: 这就是为我们和这些人解决的问题: 我们的项目从Django 1.4开始,然后转到1.5,然后到1.7。我们的wsgi.py看起来像这样: 当我更新到1.7样式的WSGI处理程序时: 现在一切正常。

  • 在这个优秀团队的帮助下,我能够安装Rails。下一步是升级Rails。我按照文档中的建议尝试了两种方法,但都出现了错误。。。 C:\网站 C:\网站 我回顾了评论中给出的链接,但我真的不明白...抱歉。我希望有一个直接的解决办法。谢啦 我查看了GoRails站点,它需要一个Linux子系统,这似乎比我需要的要多,在线课程的讲师没有提到。我已经为运行Rails安装了所有东西,但最后一步是将Rails

  • 正在尝试为netbeans设置glassfish服务器。我启动了服务器并运行了项目(默认的web项目),它给出了以下错误: 在< code > C:\ Users \ Michael \ Desktop \ web application 2 \ build \ web 中就地部署 GlassFish服务器,部署,null,false 该模块尚未部署。 有关详细信息,请参阅服务器日志。 构建失败(