문제

제 3 자 앱의 경우에도 URL이 반전 될 때마다 실행 해야하는 사용자 정의 로직이 있습니다. 내 프로젝트는 멀티 테넌트 웹 앱이며 임차인은 URL을 기반으로 식별됩니다. 테넌트 식별자가 포함되지 않은 유효한 URL은 단일 유효한 URL이 없습니다.

나는 이미 주변에 래퍼 기능이 있습니다 reverse, 그러나 이제 설치된 모든 앱에 사용하도록 지시하는 방법이 필요합니다. 주위의 포장지 reverse 스레드 로컬을 사용하여 결과 URL에 식별자를 주입합니다. 이 기능을 데코레이터로 쓸 수 있습니다 reverse, 그러나 나는 실제 장식을 어디에서 해야할지 모르겠습니다.

적당히 확고한 제약 조건 : 저는 이미 3 개의 3 파트 파티 앱을 사용하고 있으며 아마도 더 추가하겠습니다. 해결책 해서는 안됩니다 이 모든 타사 앱의 소스 코드를 수정해야합니다. 더 쉬운 방법이 있다면 여러 타사 소스 트리 위에 패치를 유지한다는 아이디어를 좋아하지 않습니다. 나는 문서를 풍부하게 분명히 할 수있다 reverse 장식되었습니다.

원래 질문 : 모든 호출에 적용 할 수있는 그러한 변화를 어디에서 만들 수 있는지 reverse?

가능한 대안 질문 : 타사 앱이 생성 한 모든 URL을 포함하여 세입자 식별자를 세우는 모든 URL은 무엇입니까? BTW, 나는 URL에 임차인 -ID의 임베딩을 제외하고는 이것을 처리 할 수있는 더 나은 방법에 열려 있습니다. 그 결정은 지금 돌로 꽤 설정되어 있습니다. 감사.

감사.

도움이 되었습니까?

해결책

django reverse가 ur_reverse로 대체되도록 유일한 방법은

django.core.urlresolvers.reverse = ur_reverse

또는 데코레이터 구문 설탕을 좋아한다면

django.core.urlresolvers.reverse = ur_reverse_decorator(django.core.urlresolvers.reverse )

ur_reverse와의 역전의 모든 사용을 기꺼이 변경하지 않는 한, 나는 조언하지 않을 것입니다 (그리고 많은 사람들이 소리칩니다)

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