Skip to main content
 首页 » 编程设计

python之Django 模板反向 url 解析而不为变量创建组

2025年05月04日32lyhabc

我想创建这样的 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 来处理。这也为人类读者简化了正则表达式。

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