Tl; dr: 是否有一种方法可以覆盖 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 %}
来包含它,与其他调用相关。(这里的内容涉及IT技术)