我正在使用MongoEngine的Django安装来使MongoDB作为我项目的后端工作。
我已经实现了工作,但我坚持使用Django Rest Framework的身份验证系统。刚刚阅读了authentication
章的API指南,并正在试用他们的TokenAuthentication
。
使用
创建标记t = Token.objects.create(user=..)
它需要Django User
个实例。由于我使用的是MongoEngine,settings.py
文件中的数据库条目设置为Dummy。
那么如何创建一个可由Token类使用的user
实例。
我尝试使用MongoEngine的mongoengine.django.auth
创建用户,但Token类不接受此对象。
产生的错误是:
ValueError: Cannot assign "<User: gaurav>": "Token.user" must be a "User" instance.
请让我知道如何让它发挥作用。
答案 0 :(得分:2)
不幸的是你必须自己写。作为参考,您可以使用我刚创建的要点:https://gist.github.com/RockingRolli/79ceab04adb72c106cd6 几个星期前我解决了这个问题并且它有效。代码基本上是继承 TokenAuthentication 并添加Mongoengine特定的行为。 还有Mongoengine提供的Django用户功能:http://docs.mongoengine.org/en/latest/django.html#custom-user-model - IIRC你还需要MongoTokenAuthentication。
总而言之,使用Django(+ Rest Framework)和Mongoengine在某些方面可能会很棘手,目前看来这些问题不会很快得到解决。