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'
機能していますが、これが適切な方法であるかどうかはわかりません。ドキュメントには、デフォルトのユーザー モデルに静的な値を割り当てる便利な方法を意味するセクション (リンク) があるためです。
これが適切な方法でない場合、モジュール単位で複数のユーザー モデルを使用するための提案はありますか?