我有一个带有以下视图的网址设置(网址在应用中,应用网址包含在项目中):
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。
有什么想法吗?
答案 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,我不希望它有点混乱。