Django で User モデルを拡張する最良の方法は何ですか? 質問する

Django で User モデルを拡張する最良の方法は何ですか? 質問する

カスタム フィールドを使用して User モデル (Django の認証アプリにバンドルされている) を拡張する最適な方法は何ですか? また、電子メールをユーザー名として使用することもできます (認証目的)。

私はすでに少し 方法やってみたいのですが、どれが一番良いのか決められません。

ベストアンサー1

これを行う最も簡単な方法、そして Django が実際に推奨する方法は、OneToOneField(User)プロパティを使用することです。

既存のユーザーモデルの拡張

に関連する情報を保存したい場合はUser一対一の関係追加情報用のフィールドを含むモデル。この 1 対 1 モデルは、サイト ユーザーに関する認証に関連しない情報を格納する可能性があるため、プロファイル モデルと呼ばれることがよくあります。

とはいえ、django.contrib.auth.models.Userそれを拡張して置き換えることも有効です...

カスタムユーザーモデルの置き換え

プロジェクトによっては、Django の組み込みUserモデルが必ずしも適切ではない認証要件がある場合があります。たとえば、一部のサイトでは、ユーザー名ではなく電子メール アドレスを識別トークンとして使用する方が合理的です。

[編集者注: 2 つの警告と通知が続き、これはかなり過激なことだと言及しています。]

Django ソースツリー内の実際の User クラスを変更したり、認証モジュールをコピーして変更したりすることは絶対に避けてください。

おすすめ記事