Django模板反向URL解析而不创建变量组

时间:2013-03-12 16:04:07

标签: python regex django url

我想创建这样的网址;

.../film/slug-of-the-film/id-of-film
.../film/id-of-film

示例;

../film/fight-club/1040
../film/1040

两个链接是相同的。

当我这样做时;

url(r'^(?P<slug>[-\w]+/)?(?P<id>[0-9]+)/$', views.summary, name="film_summary")

我可以使用{% url film_summary film.slug film.id %}

从模板中撤消网址

我不使用slug。这只是为了可读性。所以我尝试了类似的东西;

url(r'^(?:[-\w]+/)?(?P<id>[0-9]+)/$', views.summary, name="film_summary")

但我无法从模板中撤消此操作。有没有办法做到这一点?

除此之外的解决方案; /film/{{film.slug}}/{{film.id}}

实际上我不知道是否有必要这样做。我的目的是不添加参数来查看我不会使用的函数。

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

我会将它们作为单独的网址处理。这也简化了人类读者的正则表达式。

url(r'^(?P<id>[0-9]+)/$', views.summary, name="film_summary"),
url(r'^(?P<slug>[-\w]+/)?(?P<id>[0-9]+)/$', views.summary)