繁体   English   中英

在Django 1.9中将​​会话与mongoengine一起使用

[英]Using sessions with mongoengine in Django 1.9

我需要在Django上使用noSQL数据库,并且在非官方的mongo插件列表中,由于其良好的反馈和相对全面的文档 ,我决定使用旧版mongoengine 0.9。

经过数天的反复试验,我能够连接到mongoDB,创建自定义用户模型(文档),将用户保存在DB中,甚至使用Django的auth函数(如authenticate()set_password()

当我尝试使用login(request,user) 在该方法中崩溃的行包括:

  1. 假设mongo用户文档在meta中没有pk属性,则request.session[SESSION_KEY] = user._meta.pk.value_to_string(user) 我可以通过将其直接更改为user.id并将Mongo的默认ID设置为SESSION_KEY

  2. _get_user_session_key(request) return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY]) _get_user_session_key(request) 抛出一个ValidationError ,表示{{id}} must be an integer 在外壳上转储get_user_model()返回mongo_auth.MongoUser及其_meta.pk读取(AutoField id) _meta.pk (AutoField id) ,这说明了为什么to_python需要整数值。

实际上,有没有mongoengine方法可以使用Django的会话? 我已经在我的settings.py中将mongoengine.django.sessions设置为Session Engine,但是不确定是否还需要做其他事情。

在处理mongoengine的错误时,我实际上对它与Django的稳定性感到不太信服,我还有其他更好的选择吗?

mongoengine v0.9是为Django 1.5构建的,并且从mongoengine开始,Django的支持已与mongoengine库分离。

这是当前回购用于支持Django 1.9的地方: https : //github.com/MongoEngine/django-mongoengine 该插件仍然需要测试,但是到目前为止,auth和session在我的项目上都可以正常工作。

关于此主题的讨论将在回购的问题跟踪器上继续进行。 随时加入并做出贡献。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM