如何将字段动态添加到从mongoengine.django.auth.User继承的CustomUser模型中?

如何将字段动态添加到从mongoengine.django.auth.User继承的CustomUser模型中?,django,pymongo,mongoengine,Django,Pymongo,Mongoengine,我正在使用mongoengine和django。我有一个从mongoengine.django.auth.User继承的CustomUser模型,它定义了一些字段。我有一个字段,只有一些用户需要它。我不希望每个用户对象中都有此字段。由于mongoengine.django.auth.User是从mongoengine继承的。从中继承CustomUser模型的文档,我无法动态向其中添加字段。因此,我将我的CustomUser模型设置为同时从mongoengine.django.auth.User和

我正在使用mongoengine和django。我有一个从mongoengine.django.auth.User继承的CustomUser模型,它定义了一些字段。我有一个字段,只有一些用户需要它。我不希望每个用户对象中都有此字段。由于mongoengine.django.auth.User是从mongoengine继承的。从中继承CustomUser模型的文档,我无法动态向其中添加字段。因此,我将我的CustomUser模型设置为同时从mongoengine.django.auth.User和mongoengine.DynamicDocument继承

from mongoengine.django.auth import User
from mongoengine import DynamicDocument

class CustomUser(User, DynamicDocument):
    # fields
使用此方法,我能够为CustomUser动态创建字段。但我想知道这样做是否可以。如果有其他更好的方法,请提出建议。
谢谢。

是的,这是完全有效的,因为
mongoengine.django.auth.User
类是可继承的

替代方法可能是为不同类型的用户显式扩展,例如:

class AdminUser(User):
    role = StringField()
然后您可以使用:

User.objects(username=blah)
如果该
User
AdminUser
,它将返回正确的类实例