2009-08-04 7 views
0

나는 장고가 앱 자체에서 방문한 마지막 URL을 얻는 방법으로 구축되기를 바랬다. 필자가이 글을 쓰고 있음에 따라 (예를 들어 리다이렉트하는 페이지를 제외하고) 그런 일을 할 때 몇 가지 합병증이 있다는 것을 깨닫는다.Django에는 현재 사용자가 마지막으로 방문한 앱 URL을 가져 오는 방법이 내장되어 있습니까?

내장이없는 경우 어떤 전략을 쓰겠습니까? 나는 단지 세션에 URL을 수동으로 저장하고 리디렉션 할 때이를 참조하는 것 이외의 의미입니다. 그것은 물론 작동 할 것이지만 나는 각 시각에 대해 그렇게하는 것을 잊지 않아야한다는 생각을 싫어합니다. 오류가 발생하기 쉽고별로 우아하지 않은 것 같습니다.

오, 나는 서버 특정 추천 환경 변수에 의존하지 않을 것입니다.

답변

5

아니요, 장고 코어에 내장 된 것과 같은 것이 없습니다 (일반적인 사용 패턴이 아니기 때문에 내장되어 있지 않습니다).

하비에르 (Javier)가 제안했듯이, 원하는 미들웨어를 만들 수 있습니다. 이런 식으로 뭔가 :이 미들웨어는 설정에서 SessionMiddleware 후 을 가야 할 것

class PreviousURLMiddleware(object): 
    def process_response(request, response): 
     if response.status_code == 200: 
      request.session['previous_url'] = request.get_full_url() 
     return response 

는 세션 (워드 프로세서이는 이유를 설명하는 pretty picture이)이 이후에 업데이트 될 수 있도록합니다.

0

당신은 단지 모든 뷰 기능에 로깅 코드를 반복 할 필요가없는 미들웨어를 작성할 수 있습니다.

+0

이 작업을 수행하는 미들웨어가 있거나이 작업을 수행하기 위해 자체 미들웨어를 만들어야한다고 말하고 있습니까? – Karim

+1

그는 자신 만의 미들웨어를 만들어야한다고 말하고 있습니다. – hughdbrown

관련 문제