尝试使用 Facebook 登录 Django 服务器时发生内部服务器错误

Internal Server Error when trying to log in with Facebook to Django server

我有一个 Django REST 服务器,我最近从使用 Python 2.7 更新到 3.4。服务器在 Django 之上使用 Django REST 框架,使用 django-allauth 和 django-rest-auth 支持 Facebook 登录。

现在,更新后,我无法再使用Facebook 登录服务器了。当我向服务器发送 POST 时,出现以下错误:

Internal Server Error: /rest-auth/facebook/
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\django\core\handlers\base.py", line 132, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Python34\lib\site-packages\django\views\decorators\csrf.py", line 58, in wrapped_view return view_func(*args, **kwargs)
  File "C:\Python34\lib\site-packages\django\views\generic\base.py", line 71, in view return self.dispatch(request, *args, **kwargs)
  File "C:\Python34\lib\site-packages\rest_framework\views.py", line 452, in dispatch response = self.handle_exception(exc)
  File "C:\Python34\lib\site-packages\rest_framework\views.py", line 449, in dispatch response = handler(request, *args, **kwargs)
  File "C:\Python34\lib\site-packages\rest_auth\views.py", line 51, in post if not self.serializer.is_valid():
  File "C:\Python34\lib\site-packages\rest_framework\serializers.py", line 187, in is_valid self._validated_data = self.run_validation(self.initial_data)
  File "C:\Python34\lib\site-packages\rest_framework\serializers.py", line 370, in run_validation value = self.validate(value)
  File "C:\Python34\lib\site-packages\rest_auth\registration\serializers.py", line 31, in validate token.account = login.account
  File "C:\Python34\lib\site-packages\django\db\models\fields\related.py", line 668, in __set__ (value, self.field.rel.to._meta.object_name)
  File "C:\Python34\lib\site-packages\django\db\models\base.py", line 496, in __repr__ u = six.text_type(self)
  File "C:\Python34\lib\site-packages\allauth\socialaccount\models.py", line 104, in __str__ return force_text(self.user)
  File "C:\Python34\lib\site-packages\django\db\models\fields\related.py", line 608, in __get__ "%s has no %s." % (self.field.model.__name__, self.field.name)
django.db.models.fields.related.RelatedObjectDoesNotExist: SocialAccount has no user.
[13/Apr/2015 08:53:30]"POST /rest-auth/facebook/ HTTP/1.1" 500 115908

这可能是什么原因造成的?更新 Python 和库后我没有对代码做任何更改,并且它在更新之前工作。我删除了旧数据库并通过 syncdb 创建了一个新数据库,但没有帮助。

提前致谢。

RelatedObject 已在 Django 1.8 中删除,取而代之的是 ForeignObjectRelSource

您使用的allauth版本不支持Django 1.8。