パンくずリストでジャンゴのテンプレートにあるときに現在使用されている URL を取得しますか?
-
11-10-2019 - |
質問
私は、会社のメンバーとセンターを表示するという 2 つの目的を果たすアプリを持っています。どちらもまったく同じように機能し、モデルをフィルタリングするときに別の変数を保存します。問題は、カスタム ブレッドクラムで使用するテンプレートに現在の URL を取得できないことです。
メインの urls.py にこの URL パターンがあります。
# --- urls.py ----
url(r'^find-member/', include('company.directory.urls'), \
{'which_app': 'members'}, name='find_member'),
url(r'^find-centre/', include('company.directory.urls'), \
{'which_app': 'training'}, name='find_centre'),
私のアプリの urls.py へのリンク:
# ---- company/urls.py ----
from django.conf.urls.defaults import *
urlpatterns = patterns('company.directory.views',
url(r'^$', 'index'),
url(r'^(?P<slug>\w+)/$', 'index'),
)
私のテンプレートで、カスタム ブレッドクラムで使用する最初の URL パターンへのリンクを作成したいと考えています。
<a href='/find-member/'>members</a>
または
<a href='/find-centre/'>Centre</a>
アプリを使用している URL に基づいて。
私の見解は次のようになります:
# ---- company/view.py ----
def index(request, which_app=None, slug=None):
#r = reverse('' ,kwargs={'which_app'=training )
s = "%s %s" % (which_app, slug)
return render_to_response('directory/index.html', locals())
に基づいて URL を見つけたいのですが、 which_app
defに渡される変数。使えないようです resolve()
または reverse()
. 。おそらくやり方が間違っていると思います。現在、表示できるテンプレートがありません。
誰か提案はありますか?アドバイスをいただければ幸いです。
前もって感謝します。
解決
関数を使用する必要はありません。あなたのビューが渡されます request
属性を持つオブジェクト path
これが呼び出されたパスです。見る リクエストドキュメント.
所属していません StackOverflow