Pregunta

Tengo un poco de lógica personalizada que necesita ser ejecutado cada vez una URL se invierte, incluso para las aplicaciones de terceros. Mi proyecto es una aplicación web multiusuario, y el inquilino se identifica basándose en la URL. No hay una única URL válida que no incluye un identificador de inquilino.

Ya tengo una función de envoltura alrededor reverse, pero ahora necesito una manera de decir a cada aplicación instalada para usarlo. La envoltura alrededor de reverse utiliza un subproceso local para inyectar el identificador en la URL resultante. Podría escribir esta función como decorador en reverse, pero no saber dónde hacer la decoración actual.

Restricción moderadamente firme: ya estoy usando 3 aplicaciones 3 ª parte, y probablemente voy a añadir más. Una solución no debe Me requerir modificar el código fuente de todas estas aplicaciones de terceros. No me entusiasma la idea de mantener los parches en la parte superior de varios árboles de origen tercero-partido si hay una manera más fácil. Puedo hacer la documentación muy claro que reverse ha sido decorado.

La pregunta original: ¿Dónde podría hacer un cambio tal que garantice que se aplicaría a cada invocación de reverse

?

Posible pregunta alternativo: ¿Cuál es la mejor manera de asegurarse de que cada URL, incluyendo los generados por la 3 ª parte-aplicaciones obtiene el identificador inquilino? Por cierto, estoy abierto a una mejor manera de manejar cualquiera de esto, excepto la incorporación del inquilino-id en la URL; que la decisión es bastante inamovible en este momento. Gracias.

Gracias.

¿Fue útil?

Solución

única manera tan se sustituye por ur_reverse que inversa django es

django.core.urlresolvers.reverse = ur_reverse

o si te gusta el azúcar sintáctica decorador

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

que no quiero consejos (y muchos gritarán), a menos que usted no está dispuesto a cambiar cada uso de reversa con ur_reverse

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top