У меня есть пользовательская логика, которая должна выполняться каждый раз, когда URL-адрес отменяется, даже для сторонних приложений. Мой проект - это многопользовательское веб-приложение, и арендатор идентифицируется на основе URL-адреса. Не существует ни одного действительного URL-адреса, который не включает идентификатор арендатора.Можно ли переопределить реверс в проекте Django?
У меня уже есть функция обертки вокруг reverse
, но теперь мне нужен способ сообщить каждому установленному приложению, чтобы использовать его. Обертка вокруг reverse
использует локальный поток, чтобы вставить идентификатор в результирующий URL. Я мог бы написать эту функцию в качестве декоратора на reverse
, но я не знаю, где делать фактическое оформление.
Умеренно Фирменная Ограничение: Я уже использую 3 сторонних приложения, и я, вероятно, добавлю больше. Решение не должно требует от меня изменить исходный код всех этих сторонних приложений. Мне не нравится идея сохранения патчей поверх нескольких исходных деревьев сторонних разработчиков, если есть более простой способ. Я могу сделать документацию совершенно ясно, что был оформлен reverse
.
Оригинальный вопрос: Где я могу сделать такое изменение, которое гарантирует его применение к каждому вызову reverse
?
Возможный альтернативный вопрос: Какой лучший способ убедиться, что каждый URL-адрес, в том числе созданные сторонними приложениями, получает идентификатор арендатора? BTW, я открыт для лучшего способа обработки любого из этого, кроме вложения идентификатора арендатора в URL-адрес; это решение довольно точно установлено в камне прямо сейчас. Благодарю.
Спасибо.
Что не так, просто пересматривая каждый 'обратный' на' your_special_reverse'? Почему бы не использовать grep и не исправлять все случаи, а не путать будущих читателей вашего кода? –
Мне нужно, чтобы все сторонние приложения использовали 'your_special_reverse', и я не хочу разворачивать каждое стороннее приложение, которое я использую. Я впервые столкнулся с этой проблемой с уведомлением django, но я предвижу, что это проблема с другими приложениями. –
"каждое стороннее приложение"? О каком объеме сторонних приложений вы говорите? –