我对Django tutorial的这一部分感到困惑。它表示将整个admin
模板复制到dbe/templates
,但应该是什么样的完整路径以及我想要创建哪些文件夹?
我正在运行Mac OS X,我的todo应用程序位于/Users/hobbes3/Sites/mysite/todo/
,我的完整Django路径为/usr/local/lib/python2.7/site-packges/django/
。
我还将模板放在/Users/hobbes3/Sites/myDjango/templates
。在此文件夹中,我有admin/base_site.html
和polls/detail.html
,polls/index.html
和polls/results.html
。民意调查应用程序是从official Django tutorial创建的。我的民意调查应用程序副本工作正常。
我使用python manage.py runserver
运行服务器并且转到http://127.0.0.1:8000/admin/
时收到的错误是
ImportError at /admin/
No module named dbe.todo.models
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.3.1
Exception Type: ImportError
Exception Value:
No module named dbe.todo.models
Exception Location: /Users/hobbes3/Sites/mysite/todo/admin.py in <module>, line 1
Python Executable: /usr/local/bin/python
Python Version: 2.7.2
Python Path:
['/Users/hobbes3/Sites/mysite',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-macosx-10.4-x86_64.egg',
'/usr/local/Cellar/python/2.7.2/lib/python27.zip',
'/usr/local/Cellar/python/2.7.2/lib/python2.7',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/lib-dynload',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages',
'/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']
Server time: Fri, 24 Feb 2012 05:09:28 -0600
答案 0 :(得分:5)
对于初学者,您应该遵循官方教程:https://docs.djangoproject.com/en/dev/intro/tutorial01/
您所关注的教程看起来非常糟糕(抱歉:/)
我怀疑dbe是这个人的项目名称。当他表明:
cp -r django/contrib/admin/templates/admin/ dbe/templates/
他似乎有django和同级别的项目。所以他的dbe ==你的谜。
无论如何,没有必要为项目模块名称添加app模块前缀,这很荒谬 - 在应用程序中对项目名称进行硬编码。这完全违背了可重用应用程序的目的。运行这个:
find /path/to/your/project -type f | xargs sed -i -e s/dbe.//g
此命令将删除'dbe'。来自代码中的任何地方。这个教程代码太可怕了,我想知道为什么你甚至打扰它... ...