2012-02-16 5 views
4

'self'라는 단어가 포함 된 경로에 대한 요청을 받으면이를 URL과 일치시키기 전에 사용자 ID로 바꾸기를 원합니다. 나는 다음과 같은 미들웨어를 사용해 보았다 :URL을 일치시키기 전에 request.path를 변경하는 방법이 있습니까?

def process_request(self, request): 
    if '/self/' in request.path: 
     request.path = request.path.replace('/self/','/' + str(request.user.id) + '/') 

대체는 작동하지만 분명히 URL 일치 후에 수행된다. 이 시점 이전에 경로를 변경할 수있는 방법이 있습니까?

답변

6

을 수행하지 (내가 언급 할 수 있기 때문에이 답을 만들기)

. 이 변수를 변경하는 동일한 미들웨어가 작동합니다.

1

왜 URL을 변경 하시겠습니까? 그런 다음 새 URL과 일치합니까? URL을 원하는대로 변경하지 않고 URL을 직접 변경 한 다음 request.user.id를 작업하면됩니다.

아마도 다른 예가 사용자가하려는 것을 보여줍니다. 분명히, URL 행진이 request.path하지만 request.path_info를 사용

+0

나는 응용 프로그램을 수정하고 싶지 않아 모든보기에서해야 할 것입니다. 이 같은 것이 더 나은 선택 인 것으로 보입니다. – manuel

+0

하지만'self'를 id –

+0

no로 바꾸면 뷰를 편집해야합니다. 뷰는 이미 ID를 매개 변수로 사용합니다. – manuel

관련 문제