반응형
질문
사용자 모델(장고의 인증 앱과 함께 제공되는)을 사용자 정의 필드로 확장하는 가장 좋은 방법은 무엇인가요? 인증 목적으로 이메일을 사용자 이름으로 사용하고 싶을 수도 있습니다.
이미 몇 가지 방법을 본 적으나 어떤 방법이 가장 좋은지 결정할 수 없습니다.
답변
가장 통증이 적고 실제로 Django에서 권장하는 방법은 OneToOneField(User)
속성을 통해 이를 수행하는 것입니다.
기존 사용자 모델 확장하기
…
User
와 관련된 정보를 저장하려면 추가 정보 필드를 포함하는 모델에 대한 일대일 관계를 사용할 수 있습니다. 이 일대일 모델은 종종 프로필 모델이라고 불리며, 사이트 사용자에 대한 인증과 관련되지 않은 정보를 저장할 수 있습니다.
그렇지만, django.contrib.auth.models.User
를 확장하고 대체하는 것도 작동합니다...
사용자 정의 User 모델 대체하기
일부 프로젝트는 Django의 기본
User
모델이 항상 적합하지 않은 인증 요구 사항을 가질 수 있습니다. 예를 들어, 일부 사이트에서는 사용자 이름 대신 이메일 주소를 식별 토큰으로 사용하는 것이 더 합리적일 수 있습니다.[편집자: 두 가지 경고와 알림이 따릅니다, 이는 매우 극단적인 작업임을 언급합니다.]
Django 소스 트리에서 실제 User 클래스를 변경하거나 auth 모듈을 복사하고 수정하는 것은 절대 피해야 할 것입니다.
반응형
댓글