在url调度中存储布尔变量

时间:2017-04-30 16:41:15

标签: python regex django url

以下网址定义应该通过网址中是否存在results/

url(r'^(?P<question_id>[0-9]+)/(?P<results>(results/)?)shorten/$', views.shorten, name='shorten')

目前它通过了results/None,这对于简单来说就足够了:

if results:
    pass

但是TrueFalse会更优雅。怎么可以这样做?

1 个答案:

答案 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字符串转换为布尔值。你可以编写一个中间件或装饰器,但这样就太过分了。