Fixed #22849 -- Added Session.__str__()

This commit is contained in:
Nick Sandford 2014-07-24 21:24:01 +01:00
parent 64e75c47ef
commit b157ffdbb9
2 changed files with 16 additions and 0 deletions

View File

@ -1,6 +1,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import models from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -20,6 +21,7 @@ class SessionManager(models.Manager):
return s return s
@python_2_unicode_compatible
class Session(models.Model): class Session(models.Model):
""" """
Django provides full support for anonymous sessions. The session Django provides full support for anonymous sessions. The session
@ -48,6 +50,9 @@ class Session(models.Model):
verbose_name = _('session') verbose_name = _('session')
verbose_name_plural = _('sessions') verbose_name_plural = _('sessions')
def __str__(self):
return self.session_key
def get_decoded(self): def get_decoded(self):
return SessionStore().decode(self.session_data) return SessionStore().decode(self.session_data)

View File

@ -24,6 +24,7 @@ from django.test import TestCase, RequestFactory, override_settings
from django.test.utils import patch_logger from django.test.utils import patch_logger
from django.utils import six from django.utils import six
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text
from django.contrib.sessions.exceptions import InvalidSessionKey from django.contrib.sessions.exceptions import InvalidSessionKey
@ -310,6 +311,16 @@ class DatabaseSessionTests(SessionTestsMixin, TestCase):
backend = DatabaseSession backend = DatabaseSession
def test_session_str(self):
"Session repr should be the session key."
self.session['x'] = 1
self.session.save()
session_key = self.session.session_key
s = Session.objects.get(session_key=session_key)
self.assertEqual(force_text(s), session_key)
def test_session_get_decoded(self): def test_session_get_decoded(self):
""" """
Test we can use Session.get_decoded to retrieve data stored Test we can use Session.get_decoded to retrieve data stored