我正在将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
,它将返回正确的类实例