具有相同名称但不同正则表达式的 Django url

Iva*_*nov 1 django url reverse

我有这些类型的网址:

/city/  
/city/category/  
/city/category/subcategory/ 
Run Code Online (Sandbox Code Playgroud)

所有 url 均由一个视图处理。有没有办法对这些网址使用相同的名称,以便随后使用如下标签:

{% url 'city_index' city.slug %},
{% url 'city_index' city.slug category.slug %},
{% url 'city_index' city.slug category.slug subcategory.slug %}

我试过这个:

url(r'^(?P<city_slug>[\w\-]+)/$',
    'real_city_index',
    name='city_index'
),
url(r'^(?P<city_slug>[\w\-]+)/(?P<category_slug>[\w\-]*)/{0,1}$',
    'real_city_index',
    name='city_index'
),
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,第二个 url 反向返回不带尾部斜杠的 url。

如果你不写/{0,1},像这样的url/city/category将不起作用,这比不带斜线的反转更糟糕。

mar*_*ema 5

有没有充分的理由不将它们称为“city_index”、“city_index_with_category”和“city_index_with_sub_category”?