我想创建这样的网址;

.../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 %}反转模板的网址

我不use弹。这只是为了提高可读性。所以我尝试这样的事情;

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


但我无法从模板撤消此操作。有什么办法吗?

除了这样的解决方案; /film/{{film.slug}}/{{film.id}}

其实我不知道有必要那样做。我只是想不添加参数来查看我不会使用的函数。

先感谢您 :)

最佳答案

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

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

10-07 22:04