Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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
Python 将Social Auth连接到MongoEngine模型会出现错误_Python_Django_Django Models_Mongoengine_Django Socialauth - Fatal编程技术网

Python 将Social Auth连接到MongoEngine模型会出现错误

Python 将Social Auth连接到MongoEngine模型会出现错误,python,django,django-models,mongoengine,django-socialauth,Python,Django,Django Models,Mongoengine,Django Socialauth,在对我的settings.py文件进行必要的修改(如和文档中所述)后,我最终添加了以下代码: AUTH_USER_MODEL = 'mongo_auth.MongoUser' SOCIAL_AUTH_MODELS = 'social_auth.db.mongoengine_models' 我在尝试运行服务器后出现以下错误: File "/Library/Python/2.7/site-packages/social_auth/db/mongoengine_models.py",

在对我的settings.py文件进行必要的修改(如和文档中所述)后,我最终添加了以下代码:

    AUTH_USER_MODEL = 'mongo_auth.MongoUser'
    SOCIAL_AUTH_MODELS = 'social_auth.db.mongoengine_models'
我在尝试运行服务器后出现以下错误:

File "/Library/Python/2.7/site-packages/social_auth/db/mongoengine_models.py", line 35,
  in <module> class UserSocialAuth(Document, UserSocialAuthMixin):
File "/Library/Python/2.7/site-packages/social_auth/db/mongoengine_models.py", line 37, in UserSocialAuth
  user = ReferenceField(USER_MODEL, dbref=True)
File "/Library/Python/2.7/site-packages/mongoengine/fields.py", line 837, in __init__
  self.error('Argument to ReferenceField constructor must be a '
File "/Library/Python/2.7/site-packages/mongoengine/base/fields.py", line 125, in error
  raise ValidationError(message, errors=errors, field_name=field_name)
  mongoengine.errors.ValidationError: Argument to ReferenceField constructor must be a
  document class or a string

另一种方法是从设置中删除
SOCIAL\u AUTH\u USER\u MODEL
AUTH\u USER\u MODEL
,但我不确定MongoEngine是否需要
AUTH\u USER\u MODEL
设置。我没有测试它。

导入
mongo\u auth.MongoUser
有问题吗?你能试试吗:
print get\u model('mongo\u auth','User')
?(
get_model
位于
django.db.models
)我从django.db.models中添加了
。models导入get_model打印get_model('mongo_auth','User')
在settings.py的末尾,它返回了
None
。但是我成功地导入了这个:
print get_model('mongo_auth','MongoUser')
你是想这么说吗?这就是我想说的,可能是在fast中键入了注释。在你的
安装的应用程序
设置中
mongo_auth
是在
social_auth
之前还是之后定义的?它们都是定义的
mongoengine.django.mongo_auth
social_auth
。是否有可能MongoEngine的当前版本与Social Auth的结构不匹配,因为它是用0.6.10测试Social Auth的?可能classed中使用的方法在参数库中不匹配,比如MongoEngine的方法需要字符串,但Social Auth传递函数?我真的快疯了。
USER_MODEL_MODULE, USER_MODEL_NAME = 'mongoengine.django.auth.User'.rsplit('.', 1)
USER_MODEL = getattr(import_module(USER_MODEL_MODULE), USER_MODEL_NAME)