2012-07-29 68 views
0

我在Django新,我讀的教程,它有一個例子,但我認爲這是一個古老的Django版本,現在我使用Django 1.4Django的URL錯誤

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) 

和網址.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

那麼問題是什麼? – 2012-07-29 18:51:11

回答

1

您的URL模式缺少括號以顯示您想要捕獲URL的偏移量。嘗試將其更改爲以下:

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

通常情況下,人們更願意使用他們的URL模式named groups。在你的情況下,網址格式將變爲:

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

謝謝你們男士! – Laycho 2012-07-29 19:31:59

0

因此而不是導入的意見模塊爲應用程序和給定的處理程序的你應該提供一個字符串,我相信,所以這應該爲你的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'), 

)