我正在使用带有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.
请让我知道我如何让它工作。
你必须自己写。作为参考,您可以使用我刚刚创建的要点: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一起使用在某些时候可能会很棘手,目前看起来这些问题不会很快得到解决。