2010-05-12 1 views
0

Так что теперь я до сих пор в Django учебник части 3:Джанго UR Co

http://docs.djangoproject.com/en/1.1/intro/tutorial03/#intro-tutorial03

Попытка настроить urls.py этого куска кода, представленного обучающей

from django.conf.urls.defaults import * 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    (r'^polls/$', 'mysite.polls.views.index'), 
    (r'^polls/(?P<poll_id>\d+)/$', 'mysite.polls.views.detail'), 
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mysite.polls.views.results'), 
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'), 
    (r'^admin/', include(admin.site.urls)), 
) 

Если я изменю свой url.py по умолчанию (без ничего в нем) с этим кодом, появится 127.0.0.1:8000/polls/, но по какой-то причине 127.0.0.1:8000/admin больше не существует и дает меня следующая ошибка:

Тип исключения: TemplateSyntaxError Значение исключения: Попал в исключение при рендеринге: Пробовал голосовать в модуле mysite.polls.views. Ошибка была: «модуль» объект не имеет атрибута «голоса»

And this (Error line 30): 

Caught an exception while rendering: Tried vote in module mysite.polls.views. Error was: 'module' object has no attribute 'vote' 
20 <!-- Header --> 
21 <div id="header"> 
22 <div id="branding"> 
23 {% block branding %}{% endblock %} 
24 </div> 
25 {% if user.is_authenticated and user.is_staff %} 
26 <div id="user-tools"> 
27 {% trans 'Welcome,' %} 
28 <strong>{% firstof user.first_name user.username %}</strong>. 
29 {% block userlinks %} 
**30 {% url django-admindocs-docroot as docsroot %}** 
31 {% if docsroot %} 
32 <a href="{{ docsroot }}">{% trans 'Documentation' %}</a>/
33 {% endif %} 
34 {% url admin:password_change as password_change_url %} 
35 {% if password_change_url %} 
36 <a href="{{ password_change_url }}"> 
37 {% else %} 
38 <a href="{{ root_path }}password_change/"> 
39 {% endif %} 
40 {% trans 'Change password' %}</a>/

мне кажется, что ошибка должна быть здесь:

(г «^ администратор /», включает в себя (admin.site.urls)),

Но я не могу найти его.

Спасибо за внимание!

ответ

2

Это просто, что django, похоже, не находит функцию vote внутри вашего модуля views.

+0

Спасибо! Что делает этот фрагмент кода точно? (r '^ polls/(? P \ d +)/vote/$', 'mysite.polls.views.vote') Я понимаю его регулярные выражения, но не более того. И странно, что сайт опросов будет работать, но сайт администратора не будет. Я не понимаю эту часть. Я читал, что позже в учебнике они создают функцию голосования. – MacPython

+0

Это регулярное выражение, которое выбирает, какую функцию просмотра вызывать. Если url соответствует регулярному выражению, то вызывается функция «mysite ...». –

+0

Спасибо! Помогите мне тоже. – sergzach