5

django.contrib.auth モジュールに 2 つの異なるモデルを使用したいと考えています。1 つ目は、Django が提供するデフォルトのユーザー モデルであり、管理者アクセス (グループ、権限など) に完全に適していますが、もう 1 つは、さまざまな属性 (都市、ロケール、住所など) を持つ顧客モデルです。デフォルトのユーザー モデル。これらのユーザー グループは異なるテーブルを使用する必要があり、関係があってはなりません。

AbstractBaseUser から継承された Customer モデルと、次のような ChangeBaseUser というミドルウェア クラスを作成しました。

class ChangeBaseUser(object):
    def process_request(self, request):  
        match = resolve(request.path)
        if match.app_name == "myapp":
            settings.AUTH_USER_MODEL = 'myapp.Customer'
        else:
            settings.AUTH_USER_MODEL = 'auth.User'

機能していますが、これが適切な方法であるかどうかはわかりません。ドキュメントには、デフォルトのユーザー モデルに静的な値を割り当てる便利な方法を意味するセクション (リンク) があるためです。

これが適切な方法でない場合、モジュール単位で複数のユーザー モデルを使用するための提案はありますか?

4

1 に答える 1