본문 바로가기
Python/Python FAQ

Python 장고에서 User 모델을 확장하는 가장 좋은 방법은 무엇인가요?, What's the best way to extend the User model in Django?

by 베타코드 2023. 10. 8.
반응형

질문


사용자 모델(장고의 인증 앱과 함께 제공되는)을 사용자 정의 필드로 확장하는 가장 좋은 방법은 무엇인가요? 인증 목적으로 이메일을 사용자 이름으로 사용하고 싶을 수도 있습니다.

이미 몇 가지 방법을 으나 어떤 방법이 가장 좋은지 결정할 수 없습니다.


답변


가장 통증이 적고 실제로 Django에서 권장하는 방법은 OneToOneField(User) 속성을 통해 이를 수행하는 것입니다.

기존 사용자 모델 확장하기

User와 관련된 정보를 저장하려면 추가 정보 필드를 포함하는 모델에 대한 일대일 관계를 사용할 수 있습니다. 이 일대일 모델은 종종 프로필 모델이라고 불리며, 사이트 사용자에 대한 인증과 관련되지 않은 정보를 저장할 수 있습니다.

그렇지만, django.contrib.auth.models.User를 확장하고 대체하는 것도 작동합니다...

사용자 정의 User 모델 대체하기

일부 프로젝트는 Django의 기본 User 모델이 항상 적합하지 않은 인증 요구 사항을 가질 수 있습니다. 예를 들어, 일부 사이트에서는 사용자 이름 대신 이메일 주소를 식별 토큰으로 사용하는 것이 더 합리적일 수 있습니다.

[편집자: 두 가지 경고와 알림이 따릅니다, 이는 매우 극단적인 작업임을 언급합니다.]

Django 소스 트리에서 실제 User 클래스를 변경하거나 auth 모듈을 복사하고 수정하는 것은 절대 피해야 할 것입니다.

반응형

댓글