2013-03-26 3 views
0

에서 I는 다음과 같이 뷰 기능을 가지고있다. 미들웨어 또는 컨텍스트 프로세서에서 account_id을 얻을 수있는 방법이 있습니까? 그래서 모든 뷰에 필요한 값을 얻을 수 있습니까?얻기 URL 값은 장고

답변

0

세션 변수를 사용하여 값을 사용자 세션에 설정할 수 있습니다. 요청마다 account_id가 포함되므로 미들웨어 및 다른보기에서 해당 값에 액세스 할 수 있습니다. 보기 또는 미들웨어에서. 예를 들어, 사용자가 로그인하지 않은 경우 요청에 세션이 없을 수 있음을 명심하십시오.

# set a value 
if hasattr(request, 'session'): 
    request.session['account_id'] = account_id 

# read a value 
if hasattr(request, 'session'): 
    account_id = request.session['account_id'] 

장고의 세션 개체는 사전과 유사합니다.

+0

세션 미들웨어를 사용하면보기에 전송 된 모든 요청에 ​​세션 개체가 포함됩니다. 그렇다고 'account_id'가 설정되는 것은 아닙니다. 당신이 가지고있는 수표는 필요하지 않아야하지만, 읽을 때 KeyError가 발생하지 않게하려면 request.session 또는 account_id = request.session.get ('account_id')'에서 'if'account_id '를 사용해야합니다. – Ngenator

+0

그게 바로 내가 세션에서 account_id를 설정하고 사이트 전체에서 사용할 수있는 방법으로 세션에 값을 설정하는 부분을 게시 한 이유입니다. 자동 설정을 원할 경우, 세션 미들웨어를 활성화하면 'request.user'를 사용할 수 있습니다. – PepperoniPizza