Ошибка импорта из "Учебника по Django: приложение списка Todo" - PullRequest
3 голосов
/ 24 февраля 2012

Я запутался в этой части учебника Django .Он говорит что-то вроде копирования целых 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.Приложение опроса было создано из официального руководства по Django .Моя копия приложения опроса работает нормально.

Ошибка, которую я получаю при запуске сервера с 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

1 Ответ

5 голосов
/ 24 февраля 2012

Для начала вам следует следовать официальному учебнику: https://docs.djangoproject.com/en/dev/intro/tutorial01/

Учебник, которому вы следуете, выглядит довольно ужасно (извините: /)

Я подозреваю, что dbe - это имя проектаэтого парняКогда он показывает:

cp -r django/contrib/admin/templates/admin/ dbe/templates/

Кажется, что у него есть django и проект на одном уровне.Так что его dbe == ваш mysite.

Во всяком случае, нет необходимости добавлять префиксы модулей приложения к имени модуля проекта, это нелепо - жесткое кодирование имени проекта в приложениях.Это полностью противоречит цели многоразовых приложений.Запустите это:

find /path/to/your/project -type f | xargs sed -i -e s/dbe.//g

Эта команда удалит 'dbe.'отовсюду в вашем коде.Этот учебный код настолько ужасен, что я удивляюсь, почему вы даже не следите за ним ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...