2012-07-29 1 views
0

Je suis nouveau dans django et je lis un tutoriel et avoir un exemple, mais je pense est une ancienne version de Django et maintenant je suis en utilisant Django 1,4Django url mal

views.py 


from django.http import HttpResponse 
import datetime 

def current_datetime(request): 
    now = datetime.datetime.now() 
    html = "<html><body>It is now %s.</body></html>" % now 
    return HttpResponse(html) 

def hours_ahead(request, offset): 
    offset = int(offset) 
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset) 
    html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt) 
    return HttpResponse(html) 

et les urls fichier .py

from django.conf.urls.defaults import * 
from mysite.views import current_datetime, hours_ahead 

urlpatterns = patterns('', 
    (r'^time/$', current_datetime), 
    (r'^time/plus/\d{1,2}/$', hours_ahead), 


) 
+0

Alors, quelle est la question? –

Répondre

1

Votre modèle d'URL ne contient pas de parenthèse pour indiquer que vous souhaitez capturer le décalage à partir de l'URL. Essayez de le changer à ce qui suit:

(r'^time/plus/(\d{1,2})/$', hours_ahead), 

Souvent, les gens préfèrent utiliser named groups dans leurs modèles d'URL. Dans votre cas, le modèle d'URL deviendrait:

(r'^time/plus/(?P<offset>\d{1,2})/$', hours_ahead), 
+0

merci les hommes! – Laycho

0

Ainsi, plutôt que d'importer le module de vues pour cette application et le gestionnaire de données que vous êtes censé fournir une chaîne, je crois, donc cela devrait fonctionner pour votre urls.py

from django.conf.urls.defaults import * 
from mysite.views import current_datetime, hours_ahead 

urlpatterns = patterns('', 
    (r'^time/$', 'mysite.views.current_datetime'), 
    (r'^time/plus/\d{1,2}/$', 'mysite.views.hours_ahead'), 

)