2013-03-12 47 views
1

我想創建這樣的網址;Django模板反向網址分辨率無需創建變量組

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

但我不能從模板中反轉。有沒有辦法做到這一點?

除了像這樣的解決方案; /film/{{film.slug}}/{{film.id}}

其實我不知道是否有必要做這樣的。我只是爲了不添加一個參數來查看我不會使用的函數。

預先感謝您:)

回答

0

我會將它們作爲單獨的網址處理。這也簡化了讀者的正則表達式。

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