2012-07-11 26 views
3

我正在用django使用mongoengine。我有一個CustomUser模型繼承自mongoengine.django.auth.User,它定義了一些字段。我有一個領域,只有一些用戶需要。我不希望每個用戶對象中都有這個字段。由於mongoengine.django.auth.User是從mongoengine繼承而來的。繼承自CustomUser模型的文檔不能動態添加字段。因此,我使CustomUser模型從mongoengine.django.auth.User和mongoengine繼承。 DynamicDocument如何將字段動態添加到從mongoengine.django.auth.User繼承的CustomUser模型?

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

class CustomUser(User, DynamicDocument): 
    # fields 

使用此方法,我能夠爲CustomUser動態創建字段。但我想知道是否可以這樣做。如果還有其他更好的方法可用,請建議。 謝謝。

回答

4

是的,這是完全有效的,因爲mongoengine.django.auth.User類是可繼承的。

替代方法可能是針對不同類型的用戶例如明確擴大:

class AdminUser(User): 
    role = StringField() 

然後,你可以使用:

User.objects(username=blah) 

如果這User是一個AdminUser它會返回正確的類實例

相關問題