1

私はいくつかのビューを持っており、誰もが次のような動的メニューをレンダリングする必要があります。

def view1(request):
   return render_to_response('view1.html', 
                             RequestContext(request, {'menu': menu, 'a': a, ...}))

def view2(request):
   return render_to_response('view2.html', 
                             RequestContext(request, {'menu': menu, 'b': b, ...}))

def view3(request):
   return render_to_response('view3.html', 
                             RequestContext(request, {'menu': menu, 'c': c, ...}))

def viewN(request):
   return render_to_response('view4.html',
                             RequestContext(request, {'menu': menu, 'd': d, ...}))

しかし、すべてのビューにメニュー属性を追加する必要があるため、不快です。どのように私はそれの最適化を行うことができますか?

4

2 に答える 2

2

これがコンテキスト プロセッサの目的です。すでに RequestContext を使用しているため、メニューを返す関数を定義して に追加するだけTEMPLATE_CONTEXT_PROCESSORSです。

于 2012-06-29T21:32:46.333 に答える
0

使用している django のバージョンによっては、クラス ベースのビューまたはクラス ベースのジェネリック ビューを調べることもできます。

それ以外の場合は、次のようなこともできます。

def menu_view(request, template='menu.html', **kwargs)
    return render_to_response(template, kwargs, 
           context_instance = RequestContext(request))

kwargs はそのように動作するはずだと思います。テストしていません。そうでない場合は、それから辞書を作成します。

于 2012-06-29T21:25:33.857 に答える