Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用mongoengine在Django中创建用户时添加其他字段_Python_Django_Mongoengine - Fatal编程技术网

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版本。