2012-10-19 133 views
0

剛開始使用Django並找出URL調度程序。從我可以在文檔中看到下面的正則表達式應該抓住news/story/2012/10/23/this-is-my-first-storyDjango URL(找不到頁面)

urlpatterns = patterns('news.views', 
    url(r'^$', 'index'), 
    url(r'^news/story/(?P<year>\d{4})/(?P<month>\d){2}/(?P<day>\d){2}/(?P<title_key>\w+)/$', 'story'), 
) 

不過,我收到以下錯誤......

使用mysite.urls定義的URL配置,Django的嘗試了這些網址模式,順序如下:

  • ^polls/
  • ^news/
  • ^$
  • ^news/
  • ^news/story/(?P<year>\d)/(?P<month>\d)/(?P<day>\d)/(?P<title_key>\d)/$
  • ^admin/doc/
  • ^admin/

當前的URL,news/story/2012/10/23/this-is-my-first-story,不符合任何這些。

回答

4

首先,您只接受每個模式一個數字。您需要將其修改爲\d+或更適當,\d{4}對於year\d{2}對於monthday

其次,最後的模式,爲title_key設置爲只接受數字(\d),如果你想有一個金屬塊,你應該使用[\w-]+

+0

感謝。我已將它更新爲... url(r'^ news/story /(?P \ d {4})/(?P \ d {2})/(?P \ d {2 })/(?P \ w +)/ $','story') 還有些東西是:/ – Adgezaza

+0

不是'\ w +'。使用'[\ w - ] +'。否則,你將無法捕捉到slu hyp中的連字符。 –

+0

你是最好的謝謝! – Adgezaza