Форум сайта python.su
Доброго дня.
Делаю пример из книги “Django. Разработка веб-приложений на языке Python”, Д. Форсье, П. Биссекс, Уэсли Чан, сделал “микроблог”, как стал делать общедоступную часть - полезла ошибка.
Три раза проверял - вроде всё Ок, может версии конфлитктуют, или ещё что?
Вот что сервер выдал:
Request Method: GET
Request URL: http://localhost:8000/admin/
Django Version: 1.3 alpha 1
Exception Type: TemplateSyntaxError
Exception Value: Caught ImportError while rendering: cannot import name archive
Exception Location: /usr/home/jeltoesolnce/learn/python/mysite/../mysite/blog/urls.py in <module>, line 2
Python Executable: /usr/local/bin/python
Python Version: 2.6.6
1 from django.conf.urls.defaults import *
2 from mysite.blog.views import archive
3
4 urlpatterns = patterns('',
5 url(r'^$', archive),
6 )
1 from django.template import loader, Context
2 from django.http import HttpResponse
3 from mysite.blog.models import BlogPost
4
5 def archive(request):
6 posts = BlogPost.objects.all()
7 t = loader.get_template("archive.html")
8 c = Context({ 'posts': posts })
9 return HttpResponse(t.render(c))
Офлайн
Обычный ImportError
Покажите структуру папок проекта, и каким образом и откуда запускаете девелоперский сервер.
Офлайн
Здесь я запускаю сервер (это я ему Ctrl-C дал)
%Unhandled exception in thread started by <function inner_run at 0x28f6f144>
Traceback (most recent call last):
File "/usr/local/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 76, in inner_run
run(addr, int(port), handler)
File "/usr/local/lib/python2.6/site-packages/django/core/servers/basehttp.py", line 686, in run
httpd.serve_forever()
File "/usr/local/lib/python2.6/SocketServer.py", line 224, in serve_forever
r, w, e = select.select([self], [], [], poll_interval)
AttributeError: 'NoneType' object has no attribute 'select'
%pwd
/usr/home/jeltoesolnce/learn/python/mysite
%
%ls -lR
total 28
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 5296 Nov 23 17:38 201011231720mysite.tar.gz
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 0 Nov 22 17:09 __init__.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 151 Nov 22 17:09 __init__.pyc
drwxr-xr-x 3 jeltoesolnce jeltoesolnce 512 Nov 24 18:00 blog
-rwxr-xr-x 1 jeltoesolnce jeltoesolnce 118 Nov 23 17:22 edit.sh
-rwxr-xr-x 1 jeltoesolnce jeltoesolnce 546 Nov 22 17:09 manage.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 4852 Nov 22 17:52 settings.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 2818 Nov 22 17:52 settings.pyc
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 402 Nov 24 17:52 urls.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 451 Nov 24 17:52 urls.pyc
./blog:
total 20
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 0 Nov 22 17:11 __init__.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 156 Nov 22 17:15 __init__.pyc
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 323 Nov 23 17:11 models.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 966 Nov 23 17:12 models.pyc
drwxr-xr-x 2 jeltoesolnce jeltoesolnce 512 Nov 24 17:25 templates
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 514 Nov 22 17:11 tests.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 130 Nov 24 17:30 urls.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 347 Nov 24 17:31 urls.pyc
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 284 Nov 24 17:26 views
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 26 Nov 22 17:11 views.py
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 153 Nov 24 17:31 views.pyc
./blog/templates:
total 2
-rw-r--r-- 1 jeltoesolnce jeltoesolnce 115 Nov 24 17:24 archive.html
%
../blog/urls.py
Отредактировано (Ноя. 25, 2010 09:31:36)
Офлайн
1. В settings.py: blog добавили в installed apps?
2. syncdb делали после того, как модель создали?
Офлайн
INSTALLED_APPS = (
106 'django.contrib.auth',
107 'django.contrib.admin',
108 'django.contrib.contenttypes',
109 'django.contrib.sessions',
110 'django.contrib.sites',
111 'django.contrib.messages',
112 'django.contrib.staticfiles',
113 'mysite.blog',
114 # Uncomment the next line to enable the admin:
115 # 'django.contrib.admin',
116 # Uncomment the next line to enable admin documentation:
117 # 'django.contrib.admindocs',
118 )
Отредактировано (Ноя. 25, 2010 10:49:52)
Офлайн
Теперь вот что выдал:
TemplateSyntaxError at /admin/
Caught ImportError while rendering: cannot import name archiveRequest Method: GET
Request URL: http://localhost:8000/admin/
Django Version: 1.3 alpha 1
Exception Type: TemplateSyntaxError
Exception Value: Caught ImportError while rendering: cannot import name archive
Exception Location: /usr/home/jeltoesolnce/learn/python/mysite/../mysite/blog/urls.py in <module>, line 2
Python Executable: /usr/local/bin/python
Python Version: 2.6.6
../blog/urls.py line 2:
2 from mysite.blog.views import archive
1 {% for post in posts %}
2 <h2>{{ post.title }}</h2>
3 <p>{{ post.timestamp }}</p>
4 <p>{{ post.body }}</p>
5 {% endfor %}
31 {% url django-admindocs-docroot as docsroot %}
Отредактировано (Ноя. 25, 2010 11:00:02)
Офлайн
ну, сами поройтесь.
Не пашет следующее, так как не может импортнуть.
from mysite.blog.views import archive
from blog.views import archive
from mysite.blog import views
Офлайн
Тут вопрос следующий.
Это - упражнение в книжке. Оно или работает, или нет, но я не знаю, ошибка у меня или ошибка в книжке, или конфликт версий. Ветка была создана в надежне выяснить, сталкивался-ли кто-нибудь с подобной ситуацией при выполнении данного упражнения - вот где бы был признателен за помощь.
Отредактировано (Ноя. 25, 2010 12:05:06)
Офлайн
jeltoesolnce, как давно вы знакомы с Python? vaxXxa все правильно написал.
Офлайн
Дней десять. Вполне понятно, что по прошествии некоторого времени я разберусь, почему не работал пример. В книгах встречаются опечатки, Django меняется, я могу ошибиться.
Вопрос стоял - бросать упражнение и заняться изучением Django или доделать его. За внимание - спасибо.
Отредактировано (Ноя. 25, 2010 12:18:07)
Офлайн