Primary keys containing URL characters breaks admin links
|Reported by:||robbie@…||Owned by:||adrian|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
The quote function, used by the admin application to escape url characters, incorrectly checks for strings:
if type(s) != type(''): return s
This obviously fails now that Django can return a unicode string for field values, resulting in broken links for objects with url characters in their primary key.
Checking against basestring would seem to be one way to go:
if not isinstance(s, basestring): return s
...but perhaps the admin application should be changed to use django.utils.http.urlquote since this performs a similar function?