[英]Using sessions with mongoengine in Django 1.9
我需要在Django上使用noSQL數據庫,並且在非官方的mongo插件列表中,由於其良好的反饋和相對全面的文檔 ,我決定使用舊版mongoengine 0.9。
經過數天的反復試驗,我能夠連接到mongoDB,創建自定義用戶模型(文檔),將用戶保存在DB中,甚至使用Django的auth函數(如authenticate()
, set_password()
。
當我嘗試使用login(request,user)
。 在該方法中崩潰的行包括:
假設mongo用戶文檔在meta
中沒有pk
屬性,則request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
。 我可以通過將其直接更改為user.id
並將Mongo的默認ID設置為SESSION_KEY
。
在_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.