6. User Application 2
models.py에서 새로운 필드를 추가하고 싶다면
와 같이 작성하면 되는데 사이트로 이동해보면
라는 에러가 뜨게 될 것이다. 즉 database에는 아직 없다는 것이다.
python manage.py makemigrations
를 실행해주자.(default 값을 설정해주라고 뜰텐데 default를 설정하고 실행해줍시다)
이후 python manage.py migrate
python manage.py runserver
를 실행하고 웹에서 Add user를 해보면
NewField가 생성되어있다.
만약에 ImageField를 추가하고 싶다면
pipenv install Pillow
를 실행하면 된다.
CharField는 한줄,
TextField는 여러 줄이 가능하다.
LANGUAGE_ENGLISH = "en"
LANGUAGE_KOREAN = "kr"
LANGUAGE_CHOICES = (
(LANGUAGE_ENGLISH, "English"),
(LANGUAGE_KOREAN, "Korean"),
)
language = models.CharField(choices=LANGUAGE_CHOICES, max_length=2, null=True)
와 같이 CharField에서는 선택할 수 있게 만들 수 있다.
admin.py를 살펴보면
decorator를 사용할 수도 있고
처럼 사용할 수도 있다.
user를 살펴보면
생성한 superuser하나만 나오는 것을 알 수 있다
이제 CustomUserAdmin에 코드를 추가해보자.
를 하게되면 (model에 gender 과 birthdate를 추가해 두었습니다)
이렇게 나오던 페이지가
로 나오게 되며 list_filter 도 추가해주면
페이지가 아래와 같이 나타나게 된다.
이제는 장고에서 제공하는 admin 패널을 가져와서 수정하기 위해 admin.py를 수정해 주자.
장고에서 기본적으로 제공하는 admin패널은 하나의 큰 Fieldset에 하위항목이 있게 구성되어 있다.
문제는 우리가 추가해준 항목들이 보이지 않는다는 점이다.
를 해주면 해결된다.
기존의 fieldset에 항목들이 추가되어있음을 알 수 있다.
여기까지 하게되면 Admin panel을 custom해서 사용할 수 있게 될 것이다.