簡體   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