0

特定の数のビューを含むアプリケーションを Django で構築しました。同じビューを使用するあるプロジェクトから別のプロジェクトに切り替える必要があります。

このために、辞書で変化する変数を返すコンテキスト プロセッサを使用しました。次に、すべてのビューで私はcontext_instance=RequestContext(request)

私の問題は、[プロジェクトの変更] ボタンをもう一度クリックするまでビューがリロードされないことです。

私が十分に明確かどうかはわかりませんが、誰かがここで何が間違っているかについてのヒントをくれれば、それは素晴らしいことです. どのコードが問題を理解するのに役立つかさえわかりません。

編集

私の context_processor のサンプル

from django.shortcuts import render_to_response
from django.core.context_processors import csrf
from django.template import RequestContext

def display_select_proj(request):
if request.method == "POST" and (request.POST.get("action", "") == "OK"):
     form = SelectForm(request.POST, proj_id=request.session['proj'])
     if form.is_valid():
         p = form.save()
         request.session['proj'] = proj

         return {'my_variables': my_variables}
4

1 に答える 1

2

コンテキスト プロセッサは、そのような種類のロジック、特にセッションの変更には適切な場所ではありません。ミドルウェアまたはビュー関数に移動する必要があります。

あなたのアプローチが機能しない理由: コンテキスト プロセッサは、レンダリングされるテンプレートのコンテキストを変更するだけで、ビュー関数の後に適用されます。「コンテキスト プロセッサが適用される場合」を参照してください

于 2013-03-07T15:40:27.183 に答える