#26831: Session serialisers should document limitations on values
------------------------------------------------+------------------------
Reporter: erikr | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: Documentation | Version: master
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 1 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 1
UI/UX: 0 |
------------------------------------------------+------------------------
The JSON session serialiser in Django (the default) does not allow non-
UTF8 bytes to be stored in session values. This fact is not documented,
although it may not be entirely surprising as Django expects utf-8
everywhere. However, for clarity it may still be better to mention this,
probably under https://docs.djangoproject.com/en/dev/topics/http/sessions
/#session-serialization
Here's a specific example of what you can't do, because '\xd9' is not
valid unicode:
{{{
>>> from django.contrib.sessions.backends.db import SessionStore
>>> s = SessionStore()
>>> s['foo'] = '\xd9'
>>> s.save()
......
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd9 in position 0:
unexpected end of data
}}}
I'm considering this a documentation bug, as according to my research
there is no way to encode this non-utf8 data into JSON.
--
Ticket URL: <https://code.djangoproject.com/ticket/26831>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/048.fc3f798f21aeab85f4a6926f1fad00cd%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.