diff -r b758351d191f -r cc9b7e14412b web/lib/django/contrib/sessions/backends/db.py --- a/web/lib/django/contrib/sessions/backends/db.py Wed May 19 17:43:59 2010 +0200 +++ b/web/lib/django/contrib/sessions/backends/db.py Tue May 25 02:43:45 2010 +0200 @@ -1,14 +1,18 @@ import datetime +from django.conf import settings from django.contrib.sessions.models import Session from django.contrib.sessions.backends.base import SessionBase, CreateError from django.core.exceptions import SuspiciousOperation -from django.db import IntegrityError, transaction +from django.db import IntegrityError, transaction, router from django.utils.encoding import force_unicode class SessionStore(SessionBase): """ Implements database session store. """ + def __init__(self, session_key=None): + super(SessionStore, self).__init__(session_key) + def load(self): try: s = Session.objects.get( @@ -53,12 +57,13 @@ session_data = self.encode(self._get_session(no_load=must_create)), expire_date = self.get_expiry_date() ) - sid = transaction.savepoint() + using = router.db_for_write(Session, instance=obj) + sid = transaction.savepoint(using=using) try: - obj.save(force_insert=must_create) + obj.save(force_insert=must_create, using=using) except IntegrityError: if must_create: - transaction.savepoint_rollback(sid) + transaction.savepoint_rollback(sid, using=using) raise CreateError raise