我正在使用mangoengine和django。我有一个继承自mongoengine.django.auth.User的CustomUser模型,它定义了一些字段。我有一个字段,只有一些用户需要它。我不想在每个User对象中使用此字段。由于mongoengine.django.auth.User继承自继承CustomUser模型的mongoengine.Document,因此我无法动态地将字段添加到其中。所以我使我的CustomUser模型继承mongoengine.django.auth.User和mongoengine。 DynamicDocument
from mongoengine.django.auth import User
from mongoengine import DynamicDocument
class CustomUser(User, DynamicDocument):
# fields
使用此方法,我可以为CustomUser动态创建字段。但我想知道这样做是否可以。如果还有其他更好的方法,请建议。 感谢。
答案 0 :(得分:4)
是的,因为mongoengine.django.auth.User
类是可继承的,所以完全有效。
替代方法可能是针对不同类型的用户明确扩展,例如:
class AdminUser(User):
role = StringField()
然后你可以使用:
User.objects(username=blah)
如果User
是AdminUser
,它将返回正确的类实例