0

次のようなビュー ハンドラがあるとします。

@require_GET
def FooView(request):
  # do stuff...
  return render_to_response(
    'foo.html',
    {
      # some data...
      'current_view': 'FooView' # the eyesore
    }
  )

現在のメニュー項目、ブレッドクラムなどをマークするために「current_view」値が必要です。

現在のビュー名をテンプレートで使用できるようにする簡単で確立された方法はありますか?

もちろん、ビューごとのクラスを作成して使用することもできself.__class_.__name__ます。簡単で確立された Django の慣用的な方法に興味があります。

私はジャンゴ1.4を使用しています。

4

1 に答える 1

0

Context Processor を使用してこの情報を入力し、すべてのテンプレートに自動的に含めることができます

from django.core.urlresolvers import resolve


def custom_context_processor(request):
    return {'view_name': resolve(request.path)[0]}

このコンテキスト プロセッサを設定で TEMPLATE_CONTEXT_PROCESSORS タプルに追加できます。そうすれば、次のスニペットのように、すべてのテンプレートでアクセスできます。

{{ view_name }} 

于 2013-07-02T22:53:12.773 に答える