2011-04-01 3 views
0

괜찮은 질문이지만 온라인에서 예제를 찾을 수 없다면 용서해주십시오. 저는 Codeigniter에서 장고로 변환하는 PHP 개발자입니다. 나는 이렇게 만든 모델을 부르고있다.Django 개발 - 모델 결과에 올바르게 액세스하는 방법

if request.method == 'GET': 
    for e in Ratecard.objects.filter(reportSuite=region): 
     suite = e.reportSuite 
     RP_UniqueUsers = e.RP_UniqueUsers 
     RP_PageImpressions = e.RP_PageImpressions 
     RP_TimeSpent = e.RP_TimeSpent 
     RP_PageViewPerVisit = e.RP_PageViewPerVisit 
     HP_PageImpressions = e.HP_PageImpressions 
     HP_UniqueUsers = e.HP_UniqueUsers 
     HP_TimeSpent = e.HP_TimeSpents 



return render_to_response('rates.html', locals()) 

이 예제에서 'region'은 GET 매개 변수로 설정됩니다. 내 문제는 그때 나는 내 템플릿에서 스위트에 액세스하려고하면 그것의 아무것도 얻지 않는다는 것입니다. {{region}}은 결과를 인쇄하지 않습니다.

보기 및 템플릿 모두에서이 데이터에 액세스하는 올바른 방법은 무엇입니까?

답변

2

로컬보기 변수는 기본적으로 템플릿에 표시되는 이 아니며입니다. 컨텍스트 사전에 명시 적으로 전달해야합니다. 일반적으로 render_to_response에서이 작업을 수행합니다.

예 :

렌더링()의 호출은의 사용을 강제 context_instance 인수()에는 render_to_response하는 것과 동일합니다 :

def index(request): 
    # a local variable 
    region = "sanriku" 

    # render_to_response takes a template file name as the first argument 
    # and optionally some more parameters, such as a context dictionary, 
    # that holds your variables, which will be accessible in this view. 
    # Here, e.g. the variable {{ region }} will be accessible and will print 
    # just "sanriku". 
    return render_to_response("index.html", {"region" : region}) 

장고 1.3 새 바로 가기 render 소개 RequestContext.

모든 GET 요청 매개 변수의 바로 가기는 다음과 같습니다

{{ request.GET.q }} 

당신이 사용하도록 설정된 request context processor이있는 경우. 그냥 개발을 위해

: 당신이 개발하는 동안 몇 가지 키 입력을 저장하려면, 당신은 현재 지역 심볼 테이블를 나타내는 사전을 반환 locals() 기능을 통해 한 번에 모든 로컬 변수를 추가 할 수 있습니다. 그래서 템플릿뿐만 아니라 RequestContext에 포함 된 모든 데이터의 모든 지역 변수에 액세스 할 수있는 가장 조밀 식으로, 당신은 쓸 수 :

# Django 1.3 
return render("template.html", **locals()) 

# Pre Django 1.3 
return render("template.html", **locals(), 
    context_instance=RequestContext(request)) 
+0

참으로 내가이 많은 지금까지 이 업데이트 있다고 생각했다 내 현재 코드,하지만 아무것도 밖으로 변수를 얻을 ... – Matthew

+0

좋아, 그것은 '독립 변수'로 지역을 얻지 않는 것 같습니다. 당신이보기에'{{request.GET.region}}'을 시도 했습니까? 'request' 객체는 요청 문맥 프로세서가 가능하다면 템플릿에서 사용할 수 있습니다 (위의 편집 참조). – miku

+0

죄송합니다 템플릿에 액세스하는 것은 부차적 인 문제 일뿐입니다. 내가 알고 싶은 것은 for 루프에서 변수를 올바르게 설정하고 있는가? 거기에 사용할 수있는 간단한 디버깅 방법은 무엇입니까? PHP에서 var_dump() 같은거야? – Matthew

관련 문제