10

/admin/manage/products/addテンプレート内の特定のビューのURLを印刷できますか?

これが私がリンクを作成したいルールです

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}),

ハードコーディングせずに/manage/ products/addをテンプレートに追加したいと思います。これどうやってするの?

編集:私はデフォルトの管理者を使用していません(まあ、私はそうですが、それは別のURLにあります)、これは私自身のものです

4

3 に答える 3

17

を使用できますget_absolute_urlが、それは特定のオブジェクトに対してのみ機能します。オブジェクトはまだ作成されていないため、この場合は機能しません。

名前付き URL パターンを使用したい。簡単な紹介は次のとおりです。

urls.py の行を次のように変更します。

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"),

次に、テンプレートでこれを使用して URL を表示します。

{% url create-product %}

Django 1.5 以降を使用している場合は、次のものが必要です。

{% url 'create-product' %}

名前付き URL パターンを使用すると、さらに強力なことができます。非常に便利です。これらは開発バージョン (および 1.0) のみであることに注意してください。

于 2008-09-06T07:22:52.583 に答える
2

名前付き URL パターンを使用する場合、テンプレートで次のことができます

{% url create_object %}
于 2008-09-06T02:49:38.247 に答える
0

URL を作成する推奨される方法はget_absolute_url、モデル クラスにメソッドを追加することです。そこにパスをハードコーディングして、少なくとも KISS の哲学に従うことに近づけることができます。

permalinkurls 構成に基づいてパスを計算するデコレーターを利用することで、さらに先に進むことができます。

詳細については、こちらの django ドキュメントを参照してください。

于 2008-09-06T02:50:08.403 に答える