1

会社のメンバーとセンターを表示するという2つの目的を果たすアプリがあります。どちらもまったく同じように機能し、モデルをフィルタリングするときに別の変数を保存します。問題は、カスタムブレッドクラムで使用するために現在のURLをテンプレートに取得できないことです。


私のメインのurls.pyにこのurlpatternがあります:

# --- 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'),
)

テンプレートで、カスタムブレッドクラムで使用する最初のurlpattenへのリンクを作成したい

<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())

which_appdefに渡された変数に基づいてURLを見つけたいと思います。使用できないようresolve()ですreverse()。私はおそらくそれを間違っています。現在、表示するテンプレートがありません。

誰か提案はありますか?アドバイスをお願いします。

前もって感謝します。

4

1 に答える 1

3

関数を使用する必要はありません。ビューには、呼び出されたパスであるrequest属性を持つオブジェクトが渡されます。リクエストドキュメントpathをご覧ください。

于 2011-01-15T19:15:59.060 に答える