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.