声明附加参数
在使用url()函数定义路由项时,除了利用正则模板从URL中提取视图函数需要的参数, 还可以使用一个字典,手动指定调用时需要附加的关键字参数。
例如,对于下面示例中的路由表:
urlpatterns = [
url(r'^news/([0-9]{4})/$', v_news, {'target': 'teenager'}),
]
当用户访问/news/2013/时,Django将以如下形式调用视图函数v_news:
v_news(request,year='2013',target='teenager')
也可以向整个子路由附加调用参数,这等效于在子路由中的每一项附加调用参数:
inner_patterns = [
url(r'^archive/$', v_archive),
url(r'^about/$', v_about),
]
urlpatterns = [
url(r'^blog/', include(inner_patterns), {'blogid': 3}),
]
当用户访问/blog/archive/时,Django将进行如下的调用:
v_archive(request,blogid=3)
请思考一下,在什么情况下会需要向视图传入额外的参数?