1. ホーム
  2. django

[解決済み] Django のカスタムフィールドで User モデルを拡張する

2022-03-19 12:13:04

質問

User モデル (Django の認証アプリにバンドルされている) をカスタムフィールドで拡張するには、どのような方法があるのでしょうか?また、(認証のために)ユーザ名として電子メールを使いたいと考えています。

すでに 少ない 方法 が、どれが一番いいのか決めかねています。

どのように解決するのですか?

最も手間がかからず、実際にDjangoが推奨している方法は OneToOneField(User) プロパティを使用します。

<ブロッククオート

既存のUserモデルの拡張

...

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

とはいえ django.contrib.auth.models.User とサプレッションするのも効果的です...。

カスタムUserモデルの代用

プロジェクトの種類によっては、Django に内蔵されている認証機能が必要な場合があります。 User モデルは必ずしも適切ではありません。例えば、あるサイトでは、ユーザ名ではなくメールアドレスを識別トークンとして使用する方が理にかなっています。

2つの警告と通知が続く であることに言及しています。 かなり思い切った .]

Django のソースツリーで実際の User クラスを変更したり、auth モジュールをコピーして変更したりするのは、絶対にやめてください。