我正在使用MongoEngine
将所有用户数据存储在Django上。
我想在创建用户时将其他字段(例如user_id
)添加到用户数据中。
我已经尝试过2种方法,但两者都返回相同的错误:Cannot resolve field 'user_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_user
似乎只接受某些特定字段,例如电子邮件,用户名和密码。
如何使用mongoengine将其他自定义字段添加到用户数据库?
感谢您的回答。
答案 0 :(得分:1)
您可以创建自定义用户类:
import mongoengine
from mongoengine.django.auth import User
class CustomUser(User):
user_id = mongoengine.StringField() # or another field
你必须告诉Mongoengine使用你的自定义类,所以在settings.py
添加:
MONGOENGINE_USER_DOCUMENT = 'path.to.your.module.CustomUser'
更多信息here(这适用于Mongoengine 0.9或更低版本,因为在此版本之后已删除对Django的支持。)