使用mongoengine时Django auth错误

时间:2015-04-22 08:58:32

标签: python django python-3.x mongoengine

我使用mongoengine(v0.9)作为Python 3.4运行的Django(v1.8)项目的映射器。

虽然我已将以下代码添加到settings.py文件中,但当用户尝试使用django默认管理进程连接到admin时,仍然会收到此错误。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mongoengine.django.mongo_auth',
    'myapp',
)

AUTHENTICATION_BACKENDS = ('mongoengine.django.auth.MongoEngineBackend',)

SESSION_ENGINE = 'mongoengine.django.sessions'

connect('mymongodb')
  

/ admin / login /

中的AttributeError      

'MetaDict'对象没有属性'pk'

     

请求方法:POST

     

请求网址:http://myapp.dev:8000/admin/login/

     

Django版本:1.8

     

异常类型:AttributeError

     

异常值:'MetaDict'对象没有属性'pk'

     

异常位置:c:\ Programs \ Python34 \ lib \ site-packages \ django \ contrib \ auth__init __。py in login,line 111

     

Python可执行文件:c:\ Programs \ Python34 \ python.exe

     

Python版本:3.4.2

P.S:我也尝试通过编写URL模式,模板和视图来自定义登录过程,但在调用“login()”函数时会出现同样的错误。

2 个答案:

答案 0 :(得分:1)

我有同样的问题,你们有。我创建了一个新的github项目来解决我的问题。您可以通过转到https://github.com/robintiwari/django-me下载或修改它或提取代码供您自己使用。如果您对如何使用它有任何疑问,请与我们联系。我还有一个关于配置的示例项目。具体而言,您应该在此代码https://github.com/robintiwari/django-me/blob/master/djangome/mongo_auth/middlewares.py

上找到答案

答案 1 :(得分:0)

此文件中的更改 C:\程序\ Python34 \ lib中\站点包\ django的\的contrib \ auth__init __吡啶

try:
   request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
except Exception:
   request.session[SESSION_KEY] = user.id