Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django社交身份验证facebook错误_Django_Json_Django Views_Django Socialauth_Django Facebook - Fatal编程技术网

django社交身份验证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

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, 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.27

Django将默认会话序列化方法改为JSON,而不是Pickle,后者不适用于对象实例,将其切换为Pickle with
session_SERIALIZER='Django.contrib.sessions.serializers.PickleSerializer'
将解决您的问题。@omab非常感谢,它现在可以工作了。