2013-07-05 69 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')从未达到过。当您更改订单时,匹配的第一条规则是正确的。