这是我的Windows系统上的追溯.
Traceback (most recent call last):
File "D:\AMD\workspace\steelrumors\manage.py", line 9, in <module>
django.setup()
File "D:\AMD\Django\django-django-4c85a0d\django\__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 108, in populate
app_config.import_models(all_models)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\config.py", line 197, in import_models
self.models_module = import_module(models_module_name)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Python27\lib\site-packages\registration\models.py", line 15, in <module>
User = get_user_model()
File "D:\AMD\Django\django-django-4c85a0d\django\contrib\auth\__init__.py", line 135, in get_user_model
return django_apps.get_model(settings.AUTH_USER_MODEL)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 199, in get_model
self.check_models_ready()
File "D:\AMD\Django\django-django-4c85a0d\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.
Run Code Online (Sandbox Code Playgroud)
而我的manage.py看起来像这样:
import os
import sys
import django
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "steelrumors.settings")
django.setup()
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Run Code Online (Sandbox Code Playgroud)
当我尝试在Django 1.7中使用注册应用程序时,我收到此错误
Nim*_*imo 233
运行这些命令解决了我的问题(归功于这个答案):
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)
但是我不确定为什么我需要这个.评论将不胜感激.
gon*_*onz 56
问题出在您的注册应用中.似乎django-registration get_user_module()在models.py模块级调用(当模型仍被应用程序注册过程加载时).这将不再有效:
try:
from django.contrib.auth import get_user_model
User = get_user_model()
except ImportError:
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)
我将此模型文件更改为仅调用get_user_model()内部方法(而不是在模块级别),并且在FK中使用类似于:
user = ForeignKey(settings.AUTH_USER_MODEL)
Run Code Online (Sandbox Code Playgroud)
顺便说一下django.setup(),你的manage.py文件中不应该要求调用它,它会在你身边调用execute_from_command_line.(来源)
Nic*_*cek 56
这就是为我们和这些人解决的问题:
我们的项目从Django 1.4开始,我们到1.5然后到1.7.我们的wsgi.py看起来像这样:
import os
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
application = WSGIHandler()
Run Code Online (Sandbox Code Playgroud)
当我更新到1.7样式的WSGI处理程序时:
import os
from django.core.wsgi import get_wsgi_application
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
现在一切都有效.
小智 18
刚遇到同样的问题.问题是因为django-registration与django 1.7用户模型不兼容.
一个简单的解决方法是在已安装的django-registration模块上更改这些代码行::
try:
from django.contrib.auth import get_user_model
User = get_user_model()
except ImportError:
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)
至::
from django.conf import settings
try:
from django.contrib.auth import get_user_model
User = settings.AUTH_USER_MODEL
except ImportError:
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)
我在.venv/local/lib/python2.7/site-packages/registration/models.py(virtualenv)
Lor*_*ate 14
这适用于Django 1.9.要执行的Python脚本位于Django项目的根目录中.
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PROJECT_NAME.settings")
django.setup()
from APP_NAME.models import *
Run Code Online (Sandbox Code Playgroud)
将PROJECT_NAME和APP_NAME设置为您的
另一个选择是您在INSTALLED_APPS中有重复的条目.这为我测试过的两个不同的应用程序引发了这个错误.显然这不是Django检查的东西,但是那些傻到将两个相同的应用程序放在列表中的人.我,那是谁.
| 归档时间: |
|
| 查看次数: |
127756 次 |
| 最近记录: |