2013-03-07 4 views
0

특정 개수의보기가 포함 된 장고로 응용 프로그램을 만들었습니다. 한 프로젝트에서 다른 프로젝트로 전환해야합니다.Django 컨텍스트 프로세서 :보기가 다시로드되지 않습니다.

이 경우 나는 사전에서 변경되는 변수를 반환하는 컨텍스트 프로세서를 사용했습니다. 그렇다면 내 모든 견해에서 나는 돌아갑니다 context_instance=RequestContext(request)

제 문제는 "내 프로젝트"버튼을 두 번 클릭 할 때까지 내보기가 다시로드되지 않는다는 것입니다.

내가 충분히 명확한 지 모르겠지만 누군가가 나에게 여기에 잘못된 점에 대한 힌트를 줄 수 있다면 좋을 것입니다. 어떤 코드가 문제를 이해하는 데 도움이 될지조차 모르겠다. 도움을 요청할 수 있다고 생각한다면 물어보십시오!

편집

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} 
+0

샘플 코드를 게시하십시오 – catherine

답변

2

상황에 맞는 프로세서는 논리 같은 종류의, 특히 세션 수정을위한 적절한 장소가 아니다 내 context_processor의 샘플. middleware으로 이동하거나 기능을보아야합니다.

접근 방식이 작동하지 않는 이유 : 컨텍스트 프로세서가 렌더링되는 템플릿의 컨텍스트를 수정하고보기 기능 후에 적용됩니다. See "When context processors are applied".

+0

아, 맞아! 이제는 많은 의미가 있습니다! 나는 실제로 그것을 깨닫지 못했습니다 .. 미들웨어 사용에 대한 예제가 있습니까? 아직 어떻게 작동하는지 이해하지 못합니다. – Johanna

+0

필요에 따라 세션을 수정할 수있는 [프로세스 요청 미들웨어] (https://docs.djangoproject.com/en/dev/topics/http/middleware/#process-request)를 만들 수 있습니다. 'SessionMiddleware' 이후에 커스텀 미들웨어를 만들었지 만 폼을 다루기 때문에이 로직을위한 적절한 장소는 뷰 기능이라고 생각합니다. –

+0

그래, 내가 시도 할 것이다. 내가 컨텍스트 프로세서를 사용하는 이유는 모든 페이지. 여전히 미들웨어 또는보기로 작동 할 수 있습니까? – Johanna

관련 문제