문제

가능한지 모르겠지만 Middleware를 사용하여 URL의 끝에 몇 가지 매개 변수를 추가하고 싶습니다. Modyfing이 요청한 후 리디렉션없이 수행 할 수 있습니까?

즉. 사용자 클릭 : .../some_link 및 미들웨어를 다시 작성합니다 : .../some_link? par1 = 1 & par2 = 2

다른 방법은 반응을 수정하고 모든 HTML 링크를 교체하는 것이지만, 내가하고 싶은 것이 아닙니다.

감사

도움이 되었습니까?

해결책

나는 이것이 실제로 당신의 문제와 당신이 정확히 무엇을하려고하는지에 달려 있다고 생각합니다.

Reload없이 페이지에서 URL을 수정할 수 없으므로 사용자를 리디렉션하지 않으면 URL을 변경할 수 없습니다. 기본적으로 리디렉션은 사용자에게 계속 진행하도록 지시하는 응답입니다. 실제로 URL을 변경할 방법이 없습니다. JavaScript와 같은 작업을 수행하더라도 기본적으로 리디렉션과 동일하므로 클라이언트 또는 서버 측을 수행 할 수 없습니다.

URL을 통해이 정보를 전달 해야하는 이유를 설명하면 도움이 될 수 있다고 생각합니다. 세션에 데이터를 저장하지 않겠습니까?

요청 객체에 데이터를 추가 할 수는 있지만 URL에 추가되지는 않습니다.

다른 팁

class YourRedirectMiddleware:

    def process_request(self, request):
        redirect_url = request.path+'?par1=1&par2=2'
        return HttpResponsePermanentRedirect(redirect_url)

당신은 무엇을 성취하려고 노력하고 있으며 왜 이런 식으로?

미들웨어에서 원하는대로 할 수 있습니다. 요청 객체에 액세스 할 수 있으며 원하는 경우 URL을 가져 와서 새로 리디렉션 할 수 있습니다.

내 질문은 왜 이렇게하고 싶습니까? 요청에 대한 정보를 유지 해야하는 경우이 작업을 수행하기에 적절한 장소는 세션에 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top