Debug page shows wrong URL info when altering request.path
|Reported by:||Ivan Giuliani||Owned by:||nobody|
|Severity:||Keywords:||request.path, urlconf, urls|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Not sure if this is a bug or an expected behavior, but anyway...
I have a middleware that alters
request.path in order to hide a certain part of the URL to the views, so if I have an URL like
/en/view/page/ this should become
/view/page/. With recent upgrades this stopped working, and after a bit of investigating I found that this was due to .
I spent a lot of time trying to understand why this was failing, since the debug page was showing the output I was expecting. For example, for
/en/view/page I got:
Using the URLconf defined in project.urls, Django tried these URL patterns, in this order: ... 3. ^view/(?P<title_slug>[\w-]+)/$ ... The current URL, view/page/, didn't match any of these.
view/page/ matches the 3rd url pattern.
This happens because the debug page shows
request.path, while the URLconf actually evaluates
I fixed the problem by altering
request.path_info as well, but shouldn't the debug page show the URL that is actually evaluated by URLconf?
In case this should be fixed I can provide a patch, but actually I don't know if
.path_info should be always shown or must be shown only in certain places within the debug page.
Change History (8)
comment:5 Changed 9 years ago by
|Summary:||Debug page shows wrong URL info → Debug page shows wrong URL info when altering request.path|