Django
で、ユーザーを複数のテーブルに記録することは、難しい(できない?)のではないでしょうか。
ユーザーを拡張する方法としては、以下の3つが代表的です。
- ユーザーと1対1で関連するモデルを定義
AbstractUser
から派生したユーザーモデルを定義
AbstractBaseUser
から派生したユーザーモデルを定義
1番目は、そのモデルにユーザーへのOneToOneField
とユーザーを区分するフィールドを持たせます。
2番目と3番目は、そのモデルにユーザーを区分するフィールドを持たせます。
If you’re starting a new project, it’s highly recommended to set up a custom user model, even if the default User model is sufficient for you.
Djangoは、2番目と3番目の方法を推奨しています。
既存のフィールドが定義したいユーザーの属性と大体一致している場合は、AbstractUser
から派生します。また、ユーザーの属性を1から定義したい場合は、AbstractBaseUser
から派生します。
なお、AbstractUser
は、AbstractBaseUser
から派生しています。
Customizing authentication in Django
AbstractUser
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。