管理网站:/admin/处的模板不存在
我正在按照Django的官方教程2进行学习,但不知为什么,尽管我觉得每一步都做对了,却还是无法创建管理网站。
我遇到的错误是:
TemplateDoesNotExist at /admin/
admin/login.html
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.3.1
Exception Type: TemplateDoesNotExist
Exception Value:
admin/login.html
Exception Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/template/loader.py in find_template, line 138
Python Executable: /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python Version: 2.7.2
Python Path:
['/Users/jcugley/Documents/Programming/Python/Django/mysite',
'/Library/Python/2.7/site-packages/setuptools-0.6c11-py2.7.egg',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
'/Library/Python/2.7/site-packages']
Server time: Tue, 24 Jan 2012 18:40:03 -0600
这个错误发生在我取消注释以下几行代码之后(之前是注释掉的):
### urls.py ###
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin # THIS LINE
admin.autodiscover() # THIS LINE
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)), # THIS LINE
)
如果我再把它们注释掉,错误就消失了。
我确实在settings.py的INSTALLED_APPS里添加了django.contrib.admin
。
16 个回答
11
我正在使用Django 1.9.7版本,当我尝试将admin_tools(菜单和仪表板)添加到我的应用程序时,遇到了类似的问题。我发现我需要做三件事:
在settings.py文件中编辑INSTALLED_APPS选项,如下所示(注意admin_tools要放在django contrib之前,'mines'是我的应用程序名称):
INSTALLED_APPS = [ 'admin_tools', 'admin_tools.theming', 'admin_tools.menu', 'admin_tools.dashboard', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'mines' ]
在settings.py文件中编辑TEMPLATE设置,如下所示(注意添加了'loaders'选项,并且APP_DIRS现在设置为false):
TEMPLATES = [{ 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': False, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], 'loaders': [ 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', 'admin_tools.template_loaders.Loader', ], }, }]
最后,我更新了urls.py文件,如下所示(注意包含了admin_tools的urls):
from django.conf.urls import include,url from django.contrib import admin from mines.views import SummaryByMapIcon urlpatterns = [ url(r'^admin_tools/', include('admin_tools.urls')), url(r'^admin/', admin.site.urls), url(r'^summarybymapicon$', SummaryByMapIcon, name='summarybymapicon'), ]
31
我遇到了同样的问题,所以我不得不强制让pip重新下载django。
pip install -r requirements.txt --ignore-installed --force-reinstall --upgrade --no-cache-dir
注意:我知道--no-cache-dir
这个选项是必须的,但我不确定其他选项是否都是必需的。
6
既然在其他人的电脑上可以正常运行,而且你已经启用了应用目录加载器,管理员网站也在INSTALLED_APPS
里,这些应该就足够让模板被找到了(我想还能做什么呢?)- 我只能猜测你的Django安装可能有问题。
这是一个很好的机会,可以开始使用虚拟环境和全新的Django安装,这样可以排除你设置上的问题:
打开一个终端,进入你的项目目录(其实不太重要……)
pip install virtualenv # if you don't have it.
virtualenv --no-site-packages env
# this creates a virtual python environment that doesn't include system packages
source env/bin/activate
# this forces your bash session to use that environment
pip install django
# installs a fresh copy of django to your new environment
cd path_to_my_django_project
# now go to your site directory
python manager.py runserver
# visit admin site.