Opened 11 years ago
Last modified 11 years ago
#20812 closed Bug
django.utils.encoding.force_text() should call unicode() instead of __unicode__() — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Utilities | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Unlike the unicode() builtin function, the method unicode() does not.
If people wrote a buggy unicode which does not return str or unicode, this can lead to a situation where force_text() will return non-text, and so the bug may only appear much, much later when other parts of the application assumes they were getting text and often it will become very difficult to find how the non-string object came from.
Expected result:
force_text() should be switched to use unicode() so returning non-text from unicode() will immediately raise an error at the point where the error would have been obvious.