使用mongoengine在Django中创建用户时添加其他字段

时间:2015-08-20 04:58:03

标签: python django mongoengine

我正在使用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将其他自定义字段添加到用户数据库?

感谢您的回答。

1 个答案:

答案 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的支持。)

相关问题