Thoroughly misleading error page when resolve() fails on a different URL
|Reported by:||anonymous||Owned by:||gnosek|
|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 3 years ago by willhardy
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
comment:2 Changed 3 years ago by aaugustin
- Component changed from Uncategorized to Core (URLs)
- Triage Stage changed from Unreviewed to Accepted
- Type changed from Uncategorized to Cleanup/optimization
comment:4 Changed 3 years ago by gnosek
- Owner changed from nobody to gnosek
- Status changed from new to assigned