2

このような URL を作成したい。

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

例;

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

2 つのリンクは同じです。

私がこれが好きなとき;

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

テンプレートからURLを逆にすることができます{% url film_summary film.slug film.id %}

スラッグは使いません。読みやすさのためだけです。だから私はそのようなことを試みます。

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

しかし、テンプレートからこれを元に戻すことはできません。それを行う方法はありますか?

このようなソリューションを除いて;/film/{{film.slug}}/{{film.id}}

実際には、そのようにする必要があるかどうかはわかりません。使用しないビュー関数にパラメーターを追加しないことを目指しました。

前もって感謝します :)

4

1 に答える 1

0

私はそれらを別々のURLとして扱います。これにより、人間の読者の正規表現も簡素化されます。

url(r'^(?P<id>[0-9]+)/$', views.summary, name="film_summary"),
url(r'^(?P<slug>[-\w]+/)?(?P<id>[0-9]+)/$', views.summary)
于 2013-03-12T16:45:07.977 に答える