如何在继承自mongoengine.django.auth.User的CustomUser模型中动态添加字段



我正在将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)

如果UserAdminUser,它将返回正确的类实例

最新更新