Python 使用mongoengine在Django中创建用户时添加其他字段
我正在使用Python 使用mongoengine在Django中创建用户时添加其他字段,python,django,mongoengine,Python,Django,Mongoengine,我正在使用MongoEngine将所有用户数据存储在Django上 在创建用户时,我想在用户数据中添加其他字段,如user\u id 我已经尝试了两种方法,但都返回相同的错误:无法解析字段“user\u id” 方法1: from mongoengine.django.auth import User User.create_user(email=email, username=username, password=password) User.objects(email=email.updat
MongoEngine
将所有用户数据存储在Django上
在创建用户时,我想在用户数据中添加其他字段,如user\u id
我已经尝试了两种方法,但都返回相同的错误:无法解析字段“user\u id”
方法1:
from mongoengine.django.auth import User
User.create_user(email=email, username=username, password=password)
User.objects(email=email.update(set__user_id=user_id, upsert=True)
方法2:
from mongoengine.django.auth import User
user = User.create_user(email=email, username=username, password=password)
user.user_id = user_id
user.save()
似乎create\u user
只接受一些特定字段,如电子邮件、用户名和密码
如何使用mongoengine将其他自定义字段添加到用户数据库中
感谢您的回答。您可以创建自定义用户类:
import mongoengine
from mongoengine.django.auth import User
class CustomUser(User):
user_id = mongoengine.StringField() # or another field
您必须告诉Mongoengine使用自定义类,因此在settings.py
add中:
MONGOENGINE_USER_DOCUMENT = 'path.to.your.module.CustomUser'
更多信息(这是针对Mongoengine 0.9或更低版本的,因为在此版本后对Django的支持已被删除。)它可以放在任何您想要的地方,但最好放在
models.py
中。是的。非常感谢,如果我使用的是Django 1.4怎么办?有什么方法可以在1.5之前定义自定义用户模型吗?恐怕没有,因为Django 1.5中已经引入了自定义用户。如果可能的话,你应该考虑升级Django版本。