일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- crud
- Class
- 중급파이썬
- 파이썬
- Vue
- wetube
- dict
- lambda
- SSA
- 채팅
- async
- node
- MongoDB
- RDS
- TypeScript
- flask
- git
- socket io
- NeXT
- SAA
- merge
- EC2
- pandas
- AWS
- docker
- S3
- react
- 튜플
- Props
- 카톡
- Today
- Total
초보 개발자
User admin패널 활용 및 User Model 완성 본문
우리가 전에 admin페이지에서 보여주기 위한 설정으로 아래와 같이 적었던 적이 있다. 이건 데코레이터로 만든 방식이고,
아래처럼 만들 수도 있다.
@admin.register(models.User) -> admin 패널에서 이 User모델을 보고싶어
class CustomUserAdim(admin.ModelAdmin) -> User모델을 컨트롤하는 클래스가 바로 이거야
라는 뜻이다.
이 클래스 안에서 다양한 커스텀을 해줄 수 있다. 현재 우리의 admin페이지의 User를 보면 아래와 같다.
list_display, list_filter기능을 사용하면 장고가 data를 좀 더 보기쉽게 도와준다. 아래와 같이 작성을 한다면
admin 페이지의 User모델이 이렇게 바뀌어 있는 걸 확인할 수가 있다.
display를통해 간단히 필요한 정보를 볼 수있고, filter를 통해서 조건에 맞는 데이터만 골라주기도한다.
하지만
기본적으로 장고가 가지고있던 admin패널을 사용해보려고 한다. 이렇게 커스텀하는 것은 나중에 다른 모델에서 해보려고 한다.
UserAdmin을 상속받아보자. 그러면 admin패널이 이렇게 바뀌어 있을 것이다.
먼저 search기능이 생긴 것을 확인할 수 있다.
하지만 안으로 들어가보면 우리가 만들어 둔 필드들이 싹다 사라진 것을 볼 수 있다.
이걸 확인하기 위해서 상속한 UserAdmin의 내용을 들여다 볼 필요가 있을 것 같다.
이해하기 어려운 내용이 많지만 좀 전에 사용했던 list_display와 list_filter를 발견할 수 있었다. 저기에 저렇게 적혀있기에 좀 전 화면이 출력된 것을 짐작할 수 있고 여기의 내용을 오버라이딩하면(상속했으니) 이 기능 + 나의 기능을 만들 수 있을 것이다.
fielsets를 바꾸면 우리의 field도 사용할 수 있을 것이다. fieldsets은 튜플 안에 튜플이 들어오고 그 튜플안의 첫번째 인자로 str, 두번째 인자로 딕셔너리가 오는 것 같다.
저렇게 따라 적어줘보았다.
이 결과로 아래와 같이 우리의 데이터가 잘 나왔지만 기존 장고의 User데이터들은 다 사라졌다. fieldsets의 내용을 좀더 수정해보겠다.
아래처럼 기존 UserAdmin의 fieldsets에 우리의 걸 더해주면
잘 추가가된 것을 확인할 수 있다.
또 list_filter에는 UserAdmin의 list_filter와 superhost인지 확인하도록 해주었고,
list_display에도 필요한 정보를 간단히 볼 수 있도록 해주었다.
User 모델은 이렇게 마무리 하도록 하자!
sqlite를 지워주고 migrations도 지워주도록하자 __pycache__도 지워주고 새롭게 만들자.
모델에 migration하나만 있는 것이 가장 좋다. User모델 필드의 옵션 중 null True는 다 지워주었다. 다만 datefield는 정해진 default값이 없으므로 null True를 적어주어야 한다.
'Python > airbnb 클론' 카테고리의 다른 글
(Review, Reservation , List, Conservation) model and admin (0) | 2022.01.24 |
---|---|
room model, 다대다 일대다 관계 (0) | 2022.01.23 |
field옵션들, default, choices, blank, null (0) | 2022.01.22 |
first django startapp user (0) | 2022.01.20 |
Django app 계획 방법 (0) | 2022.01.19 |