; 博士:有没有办法覆盖的默认行为reverse?
在我的 Django 项目中,我有很多网址,例如
url(r'^\w+/company/', include("company.urls", namespace="company")),
Run Code Online (Sandbox Code Playgroud)
这允许网址,如
.../companyA/company/
.../companyB/company/
Run Code Online (Sandbox Code Playgroud)
这样我就可以使用自定义中间件来修改请求,以根据使用我的网站的公司来包含一些特定的详细信息
这一切都很好,除了当 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"))
Run Code Online (Sandbox Code Playgroud)
但这意味着我必须在每个视图中包含一个参数
def view(request, company_name):
...
Run Code Online (Sandbox Code Playgroud)
以及将它包含在我{% url %}试图避免的所有其他视图调用中(即使用)。