以下网址定义应该通过网址中是否存在results/
:
url(r'^(?P<question_id>[0-9]+)/(?P<results>(results/)?)shorten/$', views.shorten, name='shorten')
目前它通过了results/
或None
,这对于简单来说就足够了:
if results:
pass
但是True
和False
会更优雅。怎么可以这样做?
答案 0 :(得分:5)
您可以使用两种网址格式并在kwargs中传递results
:
url(r'^(?P<question_id>[0-9]+)/results/shorten/$', views.shorten, {'results': True}, name='shorten'),
url(r'^(?P<question_id>[0-9]+)/shorten/$', views.shorten, {'results': False}, name='shorten'),
如果您不想这样做,那么目前还没有一种简单的方法可以将results
字符串转换为布尔值。你可以编写一个中间件或装饰器,但这样就太过分了。