我正在尝试遵循Django教程(针对v1.1)here。我遇到的问题是它无法识别我的示例测试应用程序。例如,我在/ home / user1234 / rst工作。我可以从那里成功运行服务器并创建一个应用程序。但是,如果我创建应用程序“xyz”然后将“rst.xyz”附加到settings.py中的installed_apps列表中,它似乎不起作用。我收到以下错误消息:
Error: App with label xyz could not be found. Are you sure your INSTALLED_APPS setting is correct?
我确实看到Near duplicate question,但这些建议似乎没有帮助。
我的settings.py文件包含:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'rst.xyz',
)
我已经确认mysql正在运行,我可以连接到数据库。我也在同一台机器上运行postresql和apache(我不确定这是否会导致错误)。
此外,这可能会有所帮助:
python -c "import sys; print sys.path"
['', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/pymodules/python2.6', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode', '/usr/local/lib/python2.6/dist-packages']
如果有人有任何建议,我很乐意听到他们的意见!
答案 0 :(得分:9)
好吧我有一个非常类似的问题,这可能看起来很愚蠢,但在我意识到自己做错了之前,我花了好几个小时试图解决它。
我所做的是将应用程序放在错误的位置,而不是:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
我做了:
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'polls',
)
虽然在阅读时看起来很明显,但我在网上找到的网站数量惊人,人们报告的错误相同。我希望这可以节省一些我必须经历的麻烦。
答案 1 :(得分:5)
您添加到已安装应用中的应用名称很可能只是xyz
。不是project_dir.app_name
并重申jvc26的要求。 Django 1.1非常有用,你为什么要用它来代替1.4?
答案 2 :(得分:2)
在项目2开始时,目录是用相同的名称创建的(在我的情况下是mysite),两个文件夹都有一个setting.py文件,因此你需要在两个文件中更改已安装的应用程序设置。
答案 3 :(得分:1)
我在本教程后遇到了同样的错误。我的错误是在我的应用程序的models.py中,我改变了第一行
from django.db import models
到(在你的情况下)
from rst.db import models
我的错误(除了第一次尝试使用python之外)假设“django.db”只是我项目的sqlite3数据库名称的占位符。外卖是,仅在models.py中留下这行代码。
答案 4 :(得分:1)
可能有助于考虑的另一个因素是此错误消息也与设置文件中的数据库配置相关,因此请检查命名,引擎等是否与您的设置相匹配。