Django模板反向url解析而不创建group for变量



我想创建这样的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 %}从模板反转url

我不使用slug。这只是为了可读性。所以我试着这样写;

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

但是我不能从模板中反转。有什么办法吗?

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

其实我不知道有必要那样做。我只是想不给视图函数添加一个我不会用到的参数。

提前感谢:)

我会将它们作为单独的url来处理。这也简化了人类读者的regexp。

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

最新更新