2013-07-05 107 views
-1

編輯:想通了,請看底部。頁面找不到/檔案/

我正在用Django編寫一個簡單的博客應用程序,並使用this指南在本地部署它。我已經完成了指南,並且所有內容都很標準,所以我決定擴展功能以查看博客文章的存檔。這是目前索引功能的方式,但我想將其移至/ archive /。我去教程再次得到刷新我的記憶中,它說我必須做三兩件事:

  1. 寫根URL配置在urls.py
  2. 寫views.py
  3. 寫的視圖功能對於意見

模板我編輯URL配置看起來像這樣:

urlpatterns = patterns('', 
    #other patterns 
    url(r'^archive/', 'RehabLog.views.archive'), 
) 

我編輯我的views.py到添加此功能:

def archive(request): 
    posts = Post.objects.filter(published=True) 
    return render(request, 'RehabLog/archive.html', {'posts':posts}) 

我已經保存它並重新啓動工頭。當我加載頁面時,我得到一個404錯誤,告訴我沒有帖子匹配給定查詢。我錯過了什麼?

回答

我記得讀你的URLconf的順序是非常重要的。

以前我有:

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$', 'RehabLog.views.index'), 
    url(r'^(?P<slug>[\w\-]+)/$', 'RehabLog.views.post'), 
    url(r'^archive/', 'RehabLog.views.archive'), 
) 

而現在我有:

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^archive/', 'RehabLog.views.archive'), 
    url(r'^$', 'RehabLog.views.index'), 
    url(r'^(?P<slug>[\w\-]+)/$', 'RehabLog.views.post'), 
) 

現在該功能。誰能解釋爲什麼?

+0

請提供完整的錯誤堆棧跟蹤 – matino

+0

請您提供完整的錯誤日誌。 –

+0

@matino我想通了。請參閱上文。 – Nanor

回答

0

/archive/ URL首次被url(r'^(?P<slug>[\w\-]+)/$', 'RehabLog.views.post')匹配,因此您的實際規則url(r'^archive/', 'RehabLog.views.archive')從未達到過。當您更改訂單時,匹配的第一條規則是正確的。