TheBeege

Could not adapt error

Feb 9th, 2014
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | None | 0 0
  1. # Based on https://twistedmatrix.com/documents/current/web/howto/web-in-60/session-store.html
  2.  
  3. class MBSession(Session):
  4.   sessionTimeout = 2592000 # 30 days
  5.  
  6. class IUser(Interface):
  7.   user_id = Attribute("The id from the database representing the current user.")
  8.  
  9. class User(object):
  10.   implements(IUser)
  11.  
  12.   def __init__(self, session):
  13.     self.user_id = 0
  14.  
  15. registerAdapter(User, MBSession, IUser)
  16.  
  17. class RetrieveGames(Resource):
  18.  
  19.   baseLogger = None
  20.  
  21.   def __init__(self):
  22.     self.baseLogger = logging.getLogger('MB-Server.RetrieveGames')
  23.     logger = MBLogAdapter(self.baseLogger, {'file': 'main.py', 'object': 'RetrieveGames', 'method': '__init__'})
  24.     logger.info('Creating new RetrieveGames')
  25.  
  26.     Resource.__init__(self)
  27.  
  28.   def render_GET(self, request):
  29.     logger = MBLogAdapter(self.baseLogger, {'file': 'main.py', 'object': 'RetrieveGames', 'method': 'render_GET'})
  30.  
  31.     logger.debug('request="%s"', str(request))
  32.     #user = request.getUser()
  33.     #logger.debug('user="%s"', str(user))
  34.     session = request.getSession()
  35.     logger.debug('session="%s"', str(session))
  36.     user = IUser(session) # breaks here
  37.     logger.debug('user="%s"', str(user))
  38.     logger.debug('user.user_id="%s"', str(user.user_id))
  39.     ...
  40.  
  41. #   File "./main.py", line 292, in render_GET
  42. #    user = IUser(session)
  43. #exceptions.TypeError: ('Could not adapt', <twisted.web.server.Session instance at 0x19c2200>, #<InterfaceClass __main__.IUser>)
Advertisement
Add Comment
Please, Sign In to add comment