Django multi tenancy
Tl; dr: ¿Hay alguna forma de anular el comportamiento predeterminado dereverse
?
En mi proyecto django tengo muchas URL como
url(r'^\w+/company/', include("company.urls", namespace="company")),
Lo que permite URL como
.../companyA/company/
.../companyB/company/
Para que luego pueda usar un middleware personalizado para modificar la solicitud para incluir algunos detalles específicos basados en qué compañía está usando mi sitio
Todo esto funciona bien, excepto cuando Django está tratando de descifrar la ruta completa conreverse
y{% url .. %}
...
Parece estar volviendo/x/company/
como una coincidencia predeterminada para la expresión regular. desde eldjango.utils.regex_helper
métodonext_char
tiene un mapeo de escape para\w
mapear ax
losurl
etiqueta que he podidoanular para reemplazar el/x/
con el nombre correcto de la empresa y me pregunto si hay algo similar que pueda hacer para anularreverse
de la misma manera, o cualquier otra cosa que pueda hacer para resolver este problema?
Anteriormente estaba usando
url(r'^(?P<company_name>\w+)/company/', include("company.urls", namespace="company"))
Pero esto significaba que tenía que incluir un parámetro en cada vista
def view(request, company_name):
...
Además de incluirlo en todas mis otras llamadas a la vista (es decir, con el{% url %}
) que estoy tratando de evitar.