2016-07-26 80 views
0

我用manage.py runserver從命令行運行django時遇到了問題。Django manage.py runserver得到了AppRegistryNotReady:模型尚未加載

幾個月前,Django 1.5使用相同的代碼。

今天我想再次拾起代碼並運行在Django 1.8.3和python2.7.10上。現在

,得到了錯誤的位置:

Traceback (most recent call last): 
    File "manage.py", line 29, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 312, in execute 
    django.setup() 
    File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 198, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/media/wni/study/workspace4320151111/weichun/mytheme/models.py", line 8, in <module> 
    from mezzanine.pages.models import Page 
    File "/media/wni/study/workspace4320151111/weichun/mezzanine/pages/models.py", line 34, in <module> 
    class Page(BasePage): 
    File "/media/wni/study/workspace4320151111/weichun/mezzanine/core/models.py", line 350, in __new__ 
    return super(OrderableBase, cls).__new__(cls, name, bases, attrs) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 298, in __new__ 
    new_class.add_to_class(field.name, copy.deepcopy(field)) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 324, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "/media/wni/study/workspace4320151111/weichun/mezzanine/generic/fields.py", line 226, in contribute_to_class 
    super(KeywordsField, self).contribute_to_class(cls, name) 
    File "/media/wni/study/workspace4320151111/weichun/mezzanine/generic/fields.py", line 84, in contribute_to_class 
    cls._meta.get_fields_with_model()]: 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 56, in wrapper 
    return fn(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-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 "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 740, in get_fields 
    return self._get_fields(include_parents=include_parents, include_hidden=include_hidden) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 802, in _get_fields 
    all_fields = self._relation_tree 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 60, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 709, in _relation_tree 
    return self._populate_directed_relation_graph() 
    File "/usr/local/lib/python2.7/dist-packages/django/db/models/options.py", line 681, in _populate_directed_relation_graph 
    all_models = self.apps.get_models(include_auto_created=True) 
    File "/usr/local/lib/python2.7/dist-packages/django/utils/lru_cache.py", line 101, in wrapper 
    result = user_function(*args, **kwds) 
    File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 168, in get_models 
    self.check_models_ready() 
    File "/usr/local/lib/python2.7/dist-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

您正在使用哪種夾層版本? – knbk

+0

夾層是3.1.9,我知道它是舊的,但我之前更改了一些代碼,所以我不想從官方使用最新版本。我認爲我不應該改變很多代碼來修復這個人。我想改變代碼先運行,然後嘗試轉移到正式版​​本 – Wesley

+0

看來你至少需要4.0.0與Django 1.8一起使用。您需要升級夾層,或將必要的更改回送到本地副本。 – knbk

回答

0

我認爲你需要爲你去爲不同版本的Django的改變你的wsgi.py文件。

import os 
import sys 

from django.core.handlers.wsgi import WSGIHandler 

os.environ['DJANGO_SETTINGS_MODULE'] = 'YourAppName.settings' 
application = WSGIHandler() 

並嘗試評論settings.py中導入的所有第三方應用程序。

1/.manage.py runserver將使用您的wsgi.py,但它看起來像您在頂部顯示的堆棧跟蹤不包括wsgi文件。因此,錯誤發生在wsgi文件加載之前。

2]這可能是您的Django設置的問題。例如,可以在一個不存在的目錄中LOGGING一個文件名。

3]或檢查this

+0

它不起作用。其實,目前我使用:從django.core.wsgi導入get_wsgi_application application = get_wsgi_application(),無法正常工作。我不認爲它與wsgi.py有關,因爲我從mange.py啓動應用程序 – Wesley

+0

嘗試運行python manage.py檢查此命令。 –

+0

得到了同樣的錯誤... – Wesley

相關問題