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 중국어 웹사이트의 기타 관련 기사를 참조하세요!