2011-03-22 44 views
3

我試圖通過爲yyyy/mm/dd格式的日期。它只接受月份是yyyy/mm。當我通過日期說它沒有找到頁面(404)。就像url weeklyreports/2011/03/22。無法通過日期在Django URL

這裏是我的url.py

url(r'^weeklyreports/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'weeklyreports'), 

我曾嘗試下面的網址也

url(r'^weeklyreports/\d{4}/\d{02}/\d{04}/$', 'weeklyreports'), 

我的觀點weeklyreports.py

def weeklyreports(request, year = None, month = None, day = None): 
    today = datetime.date.today() 
    if year: 
     year = int(year) 
     month = int(month) 
     day = int(day) 
     today = datetime.date(year, month, day)  

    weekday = today.weekday() 
    start_delta = datetime.timedelta(days = weekday) 
    start_of_week = today - start_delta 

    week_dates = [start_of_week + datetime.timedelta(days=i) for i in range(7)] 
    previous_week = start_of_week - datetime.timedelta(7) 
    next_week = start_of_week + datetime.timedelta(7) 
    return render_to_response('template/weeklyreports.html', locals(), 
           context_instance = RequestContext(request)) 

這裏我的Template

enter code here 
<a href="/myapp/weeklyreports/{{previous_week|date:"Y/m/d"}}"><img src="{{MEDIA_URL}}/img/previous.png"></a> 
<b>Weekly Reports</b> 
<a href="/myapp/weeklyreports/{{next_week|date:"Y/m/d"}}"><img src="{{MEDIA_URL}}/img/next.png"></a> 

這段代碼有什麼問題?在此先感謝

+0

模式r'^ weeklyreports /(\ d +)/(\ d +)/(\ d +)/ $'接受url:weeklyreports/2010/1/1 /因爲如果沒有,那麼別的東西可能不會錯顯示在你的代碼中。 – pyeleven 2011-03-22 06:30:11

+0

請發佈整個urlconf – pyeleven 2011-03-22 07:58:22

+1

它可能與尾部斜槓有關嗎?見[這裏](http://docs.djangoproject.com/en/1.2/ref/settings/#append-slash)和[here](http://morethanseven.net/2009/02/10/append-slashes -urls-django.html)。 – dgel 2011-03-22 08:01:37

回答

0

其接受長達一個月僅是 爲yyyy/mm

這些鏈接:

<a href="/myapp/weeklyreports/{{previous_week|date:"Y/m/d"}}"> 
<a href="/myapp/weeklyreports/{{next_week|date:"Y/m/d"}}"> 

應該是:

<a href="/myapp/weeklyreports/{{previous_week|date:"Y/m/d"}}/"> 
<a href="/myapp/weeklyreports/{{next_week|date:"Y/m/d"}}/"> 

通知尾隨斜線

URLconf中搜索對

的URL配置搜索對 請求的URL是什麼,作爲一個普通的Python 字符串。這不包括GET或 POST參數或域名。

例如,在 http://www.example.com/myapp/的請求中, URLconf將查找myapp /。

http://www.example.com/myapp/?page=3, 的請求中,URLconf將查找myapp /。

的URL配置不看 請求方法。換句話說,所有 請求方法 - POST,GET,HEAD, 等 - 將被路由到相同的 功能相同的URL。

http://docs.djangoproject.com/en/dev/topics/http/urls/#example

4

名稱添加到您的網址:

url(r'^weeklyreports/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'weeklyreports', name='weeklyreports'), 

在模板中,使用名爲url weeklyreports

<a href="{% url weeklyreports 2011 03 22 %}"> 

爲您做上述工作?