Django URL更改但不呈现正确的视图

时间:2014-02-07 15:45:48

标签: django url django-views

我有一个带有以下视图的网址设置(网址在应用中,应用网址包含在项目中):

url(r'^details/(?P<outage_id>\d+)/$', 'outage.views.outage_details'),

def outage_details(request, outage_id=1):
    outage_info = Outages.objects.filter(id=outage_id)
    return render_to_response('templates/outage/details.html', {'outage_info': outage_info}, context_instance=RequestContext(request))

当我点击http://localhost:8000中的链接时,浏览器中的网址会更改为http://localhost:8000/outage/details/1,但视图不会呈现正确的模板。页面保持不变。我没有收到任何错误,浏览器中的网址发生了变化,但detail.html模板无法呈现。 DB中断时ID为1。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

正则表达式r'^details/(?P<outage_id>\d+)/$'与网址http://localhost:8000/outage/details/1不匹配。但是,它应该与表达式r'^outage/details/(?P<outage_id>\d+)/$'匹配。

也许,您可以发布整个urls.py以找出实际调用的视图,因为您没有收到任何错误。我怀疑你的主页是为所有网址调用的。

答案 1 :(得分:0)

这是我的网址设置:

项目/ urls.py

urlpatterns = patterns('',
url(r'^$', 'outage.views.show_outages'),
url(r'^inventory/', include('inventory.urls')),
url(r'^outage/', include('outage.urls')),
url(r'^login', 'django.contrib.auth.views.login', {'template_name': 'templates/auth/login.html'}),
url(r'^logout', 'django.contrib.auth.views.logout', {'next_page': '/'}),
url(r'^admin/', include(admin.site.urls)),

中断/ urls.py

urlpatterns = patterns('',
url(r'^', 'outage.views.show_outages'),
url(r'^notes/(?P<outage_id>\d+)/$', 'outage.views.outage_notes', name='notes'),

我已经将细节更改为笔记,因为我在另一个应用程序中有另一个页面,其中包含详细信息URL,我不希望它有点混乱。