Thoroughly misleading error page when resolve() fails on a different URL
|Reported by:||anonymous||Owned by:||Grzegorz Nosek|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
I just spent a few hours tracking down a display bug in djangorestframework (https://github.com/tomchristie/django-rest-framework/pull/211).
This would have been *much* simpler if the debugging 404 error page hadn't been presenting this entirely irrelevant piece of information the whole time:
"The current URL, api/servers/, didn't match any of these."
As far as I can tell, the error page is getting that URL from the request's path_info attribute, when the real problem was that djangorestframework was doing "resolve(request.path)".
It would be better if the resolver set the URL it was trying to resolve on the Http404 exception object and the debugging error template retrieved it from there, rather than assuming that every 404 it is asked to display relates to the current page.
Change History (10)
comment:1 Changed 4 years ago by
|Patch needs improvement:||unset|
comment:2 Changed 4 years ago by
|Component:||Uncategorized → Core (URLs)|
|Triage Stage:||Unreviewed → Accepted|
|Type:||Uncategorized → Cleanup/optimization|
comment:4 Changed 4 years ago by
|Owner:||changed from nobody to Grzegorz Nosek|
|Status:||new → assigned|