ここでジャンゴの質問。したがって、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 を取得することは避けたいと思います。
質問する
327 次
2 に答える
0
すべてのテンプレートで変数を保持する場合は、コンテキスト プロセッサを調べてください。それらはそれぞれに追加されるため、ショートカットRequestContext
を使用するか、.render
RequestContext
template.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 に答える