Django multi tenancy
Tl; Д-р: есть ли способ переопределить поведение по умолчаниюreverse
?
В моем проекте Django у меня есть много URL, таких как
url(r'^\w+/company/', include("company.urls", namespace="company")),
Что позволяет URL-адресам, таким как
.../companyA/company/
.../companyB/company/
Так что я могу затем использовать пользовательское промежуточное программное обеспечение, чтобы изменить запрос, включив в него некоторые конкретные сведения, основанные на том, какая компания использует мой сайт.
Все это прекрасно работает, за исключением случая, когда django пытается расшифровать полный путь с помощьюreverse
а также{% url .. %}
...
Похоже возвращается/x/company/
в качестве соответствия по умолчанию для регулярного выражения. так какdjango.utils.regex_helper
методnext_char
имеет аварийное отображение для\w
сопоставить сx
url
тег я был в состояниипереопределение заменить/x/
с правильным названием компании, и мне интересно, есть ли аналогичная вещь, которую я могу сделать, чтобы переопределитьreverse
таким же образом, или что-нибудь еще, что я могу сделать, чтобы решить эту проблему?
Ранее я использовал
url(r'^(?P<company_name>\w+)/company/', include("company.urls", namespace="company"))
Но это означало, что я должен был включить параметр в каждом представлении
def view(request, company_name):
...
А также включить его во все мои другие вызовы представления (т. Е. С{% url %}
) которого я пытаюсь избежать.