[Django] User 모델 및 admin 커스텀하기

반응형

django Logo

 
Contents

    1. 배경

    장고에서는 user model은 디폴트로 authentication을 정말 잘 만들어서 제공해줍니다. username, id, First name, Last name, email, password, 가입 날짜, 마지막 로그인 날짜, admin 설정 등등을 기본으로 제공해줍니다. 그렇기 때문에 그냥 제공해주는 User Model을 써도 충분하지만 커스텀하는 방법에 대해 한번 알아보겠습니다. User 모델을 따로 만들고, admin 부분까지 커스텀을 진행해 보겠습니다.

     

    2. 해결

    1) python manage.py startapp users

    저는 이름을 users로 했지만, 원하는데로 설정 가능합니다.

     

    2) users app의 model.py

    AbstractUser을 상속받아 User 모델을 추가 정의합니다. AbstractUser란 데이터베이스에 저장되지 않는 추상 모델 중 User 부분을 디폴트로 제공해주는 부분을 의미합니다. 즉 상속받게 되면 기존에 장고에서 디폴트로 제공해주던 User의 기능을 모두 사용하실 수 있습니다.

     

    3) settings.py

    AUTH_USER_MODEL = "users.User" 

    저는 users app의 User 모델을 만들었기 때문에 "users.User"입니다. 

     

     

    4) users app의 admin.py

    models.User에 대해 UserAdmin(디폴트 유저 어드민)을 상속받은 CustomUserAdmin을 만들어서 admin에 등록하는 코드입니다. class CustomUserAdmin(UserAdmin) 밑에 admin.site.register(models.User, CustomUserAdmin) 해도 동일하게 동작합니다.

     

     

     

     

     

    Reference
    1. django Logo: https://codecondo.com/jobs-for-django-developers/django-framework-logo/
    2. Content: 노마드 코더 2019 aribnb #3.6 Recap 7:38초 쯤 참고
    반응형

    댓글

    Designed by JB FACTORY