擴充Django 使用者模型:最佳方法
使用自訂欄位擴充內建Django 使用者模型時,有兩種主要方法脫穎而出:
1。使用 OneToOneField(User) 屬性
這是建議的 Django 方法,涉及建立與 User 模型具有一對一關係的新模型。這個「個人資料」模型可以儲存有關使用者的附加資訊。
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中文網其他相關文章!