0

ここでジャンゴの質問。したがって、base.html にはヘッダーがあります。ヘッダーには、ユーザー固有のページに移動するリンクがあります。つまり、URL は次のようになります: /1234/home、/1234/about など。1234 はユーザーの ID です。home私の質問は、署名付きhome (request, user=0)で呼び出されるdjangoビューメソッドを指すURLを作成したい場合user、ログインユーザーとは異なるユーザーである場合、テンプレートでこれを行うにはどうすればよいですか? 明確にするために、私はDjangoの{% url ... %}テンプレートタグを使用{% url [view_name] request.user.id %}していますが、ログインしているユーザーのIDではなく、URLからユーザーIDが必要なため、できません。さらに、すべてのページでそれを行う必要があるため、テンプレート変数を渡して URL でユーザーの ID を取得することは避けたいと思います。

4

2 に答える 2

0

すべてのテンプレートで変数を保持する場合は、コンテキスト プロセッサを調べてください。それらはそれぞれに追加されるため、ショートカットRequestContextを使用するか、.renderRequestContexttemplate.render

https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext

https://github.com/django/django/blob/stable/1.5.x/django/core/context_processors.py

django が使用するデフォルトのものもいくつかあります。独自のものを追加するのはかなり簡単です。あなたのコンテキストプロセッサは次のようになると思います

context_processors.py

def id_from_url(request):
   # Find url id component in request.path
   return { 'url_id' : url_id }

次に、設定ファイルに追加するだけですappname.context_processors.id_from_url

于 2013-10-15T23:36:18.683 に答える