In my django app I was creating an extended user profile using session vars. But when registration form was saved and user was about to create, I got following error :
Traceback (most recent call last):
File "\Python26\Lib\site-packages\django\core\servers\basehttp.py", line 279, in run
self.result = application(self.environ, self.start_response)
File "\Python26\Lib\site-packages\django\core\servers\basehttp.py", line 651, in __call__
return self.application(environ, start_response)
File "\Python26\Lib\site-packages\django\core\handlers\wsgi.py", line 245, in __call__
response = middleware_method(request, response)
File "\Python26\Lib\site-packages\django\contrib\sessions\middleware.py", line 36, in process_response
request.session.save()
File "\Python26\Lib\site-packages\django\contrib\sessions\backends\db.py", line 53, in save
session_data = self.encode(self._get_session(no_load=must_create)),
File "\Python26\Lib\site-packages\django\contrib\sessions\backends\base.py", line 88, in encode
pickled = pickle.dumps(session_dict, pickle.HIGHEST_PROTOCOL)
PicklingError: Can't pickle <type 'cStringIO.StringO'>: attribute lookup cStringIO.StringO failed
I've googled for an answer, but found nothing interesting. Any workarounds for this ?
It appears you have a cStringIO object in your session (perhaps an uploaded file?), these cannot be pickled. Either write custom pickling code or make sure all your session data can be serialized.
Something weird going on here, because the error refers to cStringIO.StringO whereas the class is actually cStringIO.StringIO, with an extra I. Have you misspelled the name somewhere?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With