0

我正在使用一個Django安裝與MongoEngine來讓MongoDB作爲我的項目的後端工作。Django Rest框架令牌認證與MongoEngine用戶

我已經得到了實現工作,但堅持與Django Rest Framework的身份驗證系統。剛剛閱讀他們的authentication一章的API指南,並嘗試使用TokenAuthentication

令牌使用

t = Token.objects.create(user=..) 

創建並預計一Django User實例。由於我使用的是MongoEngine,因此我在settings.py文件中的數據庫條目設置爲Dummy。

那麼我該如何創建一個可以被令牌類使用的user實例。

我嘗試使用MongoEngine的mongoengine.django.auth創建用戶,但Token類不接受這個對象。

產生的錯誤是:

ValueError: Cannot assign "<User: gaurav>": "Token.user" must be a "User" instance. 

請讓我知道我能得到這個工作。

回答

2

不幸的是,你必須自己寫。作爲參考,您可以使用我剛剛創建的要點:https://gist.github.com/RockingRolli/79ceab04adb72c106cd6 我幾個星期前解決了這個問題,它的工作原理。代碼基本上繼承了TokenAuthentication並添加了Mongoengine的特定行爲。 還有Mongoengine提供的Django用戶功能:http://docs.mongoengine.org/en/latest/django.html#custom-user-model - IIRC您還需要MongoTokenAuthentication。

總而言之,在Mongoengine中使用Django(+ Rest Framework)在某些時候可能會非常棘手,目前看起來這些問題很快就不會解決。