django社交身份验证facebook错误
Django social_auth facebook后端在本地版本上运行良好,但该网站的生产版本出现以下错误:django社交身份验证facebook错误,django,json,django-views,django-socialauth,django-facebook,Django,Json,Django Views,Django Socialauth,Django Facebook,Django social_auth facebook后端在本地版本上运行良好,但该网站的生产版本出现以下错误: Traceback (most recent call last): File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 201, in get_response response = middleware_method(request
Traceback (most recent call last):
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/core/handlers/base.py", line 201, in get_response
response = middleware_method(request, response)
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/contrib/sessions/middleware.py", line 38, in process_response
request.session.save()
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/contrib/sessions/backends/cached_db.py", line 62, in save
super(SessionStore, self).save(must_create)
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 57, in save
session_data=self.encode(self._get_session(no_load=must_create)),
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/contrib/sessions/backends/base.py", line 87, in encode
serialized = self.serializer().dumps(session_dict)
File "/home/my_user/my_project/venv/lib/python2.7/site-packages/django/core/signing.py", line 88, in dumps
return json.dumps(obj, separators=(',', ':')).encode('latin-1')
File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 178, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <social_auth.backends.facebook.FacebookBackend object at 0x7fd0543fe710> is not JSON serializable
回溯(最近一次呼叫最后一次):
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/core/handlers/base.py”,第201行,在get_响应中
响应=中间件\方法(请求、响应)
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/contrib/sessions/middleware.py”,第38行,进程中响应
request.session.save()
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/contrib/sessions/backends/cached_db.py”,第62行,保存
超级(SessionStore,self).保存(必须创建)
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/contrib/sessions/backends/db.py”,第57行,保存
session\u data=self.encode(self.\u get\u session(no\u load=must\u create)),
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/contrib/sessions/backends/base.py”,第87行,编码
serialized=self.serializer().dumps(会话\u dict)
文件“/home/my_user/my_project/venv/lib/python2.7/site packages/django/core/signing.py”,第88行,转储
返回json.dumps(obj,分隔符=(',',':')).encode('latin-1'))
文件“/usr/lib/python2.7/json/_init__.py”,第238行,转储
**千瓦)。编码(obj)
文件“/usr/lib/python2.7/json/encoder.py”,第201行,在encode中
chunks=self.iterencode(o,\u one\u shot=True)
iterencode中的文件“/usr/lib/python2.7/json/encoder.py”,第264行
返回_iterencode(o,0)
默认情况下,文件“/usr/lib/python2.7/json/encoder.py”第178行
raise TypeError(repr(o)+“不可JSON序列化”)
TypeError:不可序列化JSON
唯一的区别是本地版本使用django1.5,而生产版本使用django1.6。这是一个原因吗?我该怎么办?Django_social_auth 0.7.27Django将默认会话序列化方法改为JSON,而不是Pickle,后者不适用于对象实例,将其切换为Pickle with
session_SERIALIZER='Django.contrib.sessions.serializers.PickleSerializer'
将解决您的问题。@omab非常感谢,它现在可以工作了。