id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 21514 Session expiry dates should be in an ISO string instead of datetime n142857@… nobody "The documentation for Django 1.6 says (https://docs.djangoproject.com/en/dev/topics/http/sessions/): Note that datetime and timedelta values are only serializable if you are using the PickleSerializer. And that's true. For instance, using django-social-auth I got this session data: {'facebook_state': 'zyuqNJsGiXBPubpnwV7Lgh5pqbkKiqk5', 'social_auth_last_login_backend': u'facebook', '_auth_user_id': 4, '_auth_user_backend': 'social_auth.backends.facebook.FacebookBackend', '_session_expiry': datetime.datetime(2013, 11, 18, 9, 21, 20, 75255, tzinfo=)}. Which will give this error on login when using JSONSerializer: datetime.datetime(2013, 11, 18, 9, 21, 20, 75255, tzinfo=) is not JSON serializable Django ships now with JSONSerializer enabled, but Django is still actively putting datetimes in sessions, concretely in django/contrib/sessions/backends/base.py:251. Since it's not a Django extension which is incompatible with the default behaviour, but Django itself, I think it's Django which must be fixed. A solution is to serialize the datetime to ISO 8601 before storing it in the session. " Bug closed contrib.sessions 1.6 Normal fixed prasoon2211 Accepted 0 0 0 0 0 0