Django Multi Tenancy

Tl; dr: Gibt es eine Möglichkeit, das Standardverhalten von @ zu überschreibereverse?

In meinem Django-Projekt habe ich eine Menge URLs wie

 url(r'^\w+/company/', include("company.urls", namespace="company")),

Welche URLs wie @ zuläs

.../companyA/company/
.../companyB/company/

Damit ich dann eine benutzerdefinierte Middleware verwenden kann, um die Anforderung so zu ändern, dass sie einige spezifische Details enthält, die davon abhängen, welches Unternehmen meine Website verwendet.

Dies alles funktioniert einwandfrei, außer wenn Django versucht, den vollständigen Pfad mit @ zu entschlüsselreverse und{% url .. %} ...

Es scheint zurück zu kommen/x/company/ als Standardübereinstimmung für den regulären Ausdruck. seit derdjango.utils.regex_helper Methodenext_char hat eine Escape-Zuordnung für\w auf @ abbildx

Dasurl tag Ich konnte override um das @ zu ersetz/x/ mit dem richtigen Firmennamen und ich frage mich, ob es eine ähnliche Möglichkeit gibt, @ zu überschreibreverse auf die gleiche Weise oder etwas anderes, das ich tun kann, um dieses Problem zu lösen?

Vorher habe ich @ verwend

url(r'^(?P<company_name>\w+)/company/', include("company.urls", namespace="company"))

Aber dies bedeutete, dass ich in jede Ansicht einen Parameter einfügen musste

def view(request, company_name):
    ...

Sowie es in alle meine anderen Aufrufe der Ansicht einbeziehen (d. H. Mit dem{% url %}) was ich zu vermeiden versuche.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage