3

私はdjangoでmongoengineを使用しています。いくつかのフィールドを定義する mongoengine.django.auth.User から継承する CustomUser モデルがあります。一部のユーザーにのみ必要なフィールドがあります。すべての User オブジェクトにこのフィールドを入れたくありません。mongoengine.django.auth.User は、CustomUser モデルの継承元である mongoengine.Document から継承されるため、動的にフィールドを追加することはできません。 DynamicDocument

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

class CustomUser(User, DynamicDocument):
    # fields

このメソッドを使用して、CustomUser のフィールドを動的に作成できます。しかし、これを行っても大丈夫かどうか知りたいです。他に利用可能なより良い方法があれば、提案してください。ありがとう。

4

1 に答える 1

4

はい、mongoengine.django.auth.Userクラスは継承可能であるため、それは完全に有効です。

別のアプローチは、さまざまなタイプのユーザーに対して明示的に拡張することです。たとえば、次のようになります。

class AdminUser(User):
    role = StringField()

次に、次を使用できます。

User.objects(username=blah)

それUserAdminUser正しいクラスインスタンスを返す場合

于 2012-07-11T12:10:37.540 に答える