2010-05-12 10 views
0

Alors conf maintenant, je suis toujours à la partie tutoriel Django 3:Django urls

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

Essayer de mettre en place la urls.py avec ce morceau de code fourni par le tutoriel

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)), 
) 

Si je change mon urls.py par défaut (avec rien dedans) avec ce code, le 127.0.0.1:8000/polls/ apparaît, mais pour une raison quelconque le 127.0.0.1:8000/admin n'est plus là et donne moi l'erreur suivante:

Type d'exception: TemplateSyntaxError Exception Value: Capture d'une exception lors du rendu: Testé dans le module mysite.polls.views. Erreur était: objet 'module' n'a pas d'attribut 'vote'

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>/

Il me semble que l'erreur doit être ici:

(r^admin/', inclure (admin.site.urls)),

Mais je ne peux pas le trouver.

Merci pour l'attention !!

Répondre

2

C'est juste que django ne semble pas trouver la fonction vote dans votre module views.

+0

Merci! Que fait exactement ce code? (r '^ sondages/(? P \ d +)/vote/$', 'monsite.polls.views.vote') Je comprends ses expressions régulières, mais pas plus que cela. Et il est étrange que le site des sondages fonctionnera, mais pas le site d'administration. Je ne comprends pas cette partie. J'ai lu que plus tard dans le tutoriel, ils créent une fonction de vote. – MacPython

+0

C'est une expression régulière qui sélectionne la fonction d'affichage qui sera appelée. Si l'URL correspond à l'expression rationnelle, la fonction 'mysite ...' est appelée. –

+0

Merci! Aide moi aussi. – sergzach