ホームページ >バックエンド開発 >Python チュートリアル >カスタムフィールドを使用して Django ユーザーモデルを最適に拡張するにはどうすればよいですか?
Django ユーザー モデルの拡張: 最適なアプローチ
カスタム フィールドを使用して組み込みの Django ユーザー モデルを拡張する場合、2 つの主なアプローチが際立ちます:
1. OneToOneField(User) プロパティの使用
これは推奨される Django アプローチであり、User モデルと 1 対 1 の関係を持つ新しいモデルの作成が含まれます。この「プロファイル」モデルには、ユーザーに関する追加情報を保存できます。
from django.db import models from django.contrib.auth.models import User class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) # Custom fields here, e.g.: address = models.CharField(max_length=255) phone_number = models.CharField(max_length=15) # ...
2.カスタム ユーザー モデルでの置換
このアプローチには、Django ユーザー モデルを必要な変更を含むカスタム モデルで完全に置き換えることが含まれます。ただし、これは抜本的であると考えられており、次の警告が付いています。
ユーザー名として電子メールを使用する
電子メールをユーザー名として使用するには、次のいずれかを実行できます。
例:
class CustomUser(AbstractUser): def get_username(self): return self.email # ... user = CustomUser.objects.get(username='john@example.com') user.set_username('jack@example.com') user.save()
以上がカスタムフィールドを使用して Django ユーザーモデルを最適に拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。