최근 내가 Django에 대해서 어느정도 알고 있는지도 확인하고 부족한 부분, 모르는 부분을 좀 보완하고자 인프런에서 강의를 듣고 있다.
아직 초반부임에도 불구하고 몰랐던 내용들이 줄줄이 나와서 좀 당황스러웠음;;;
지금까지 내가 알고 쓰던 기능들은 API 개발을 하기위한 최소 단위였다고 볼 수 있을 것 같다.
지금까지 내가 Django를 사용하면서 크게 신경쓰지 않았던 부분이 바로 Admin 페이지일 것이다.
전에 회사에 다닐때도 관리페이지를 따로 만들어서 사용했었기 때문에 Admin 페이지에 대해서 알아볼 생각을 못한 것도 있긴한데, 어쨋든 Admin 페이지에 대해서 별 생각을 안했던 것은 사실이다.
DB에 저장된 데이터를 빠르게 수정할 필요가 있을 때나, Shell 통해서 데이터 관리하는 게 조금 번거로운 경우에 가끔 Admin 페이지를 사용했었다.
어찌됐든 이번 글에서 정리할 내용은 Admin 페이지에서 사용할 수 있는 검색과 분류 기능이다.
지금까지는 App의 admin.py에서 list_display로 지정해서 그냥 데이터 확인 용도로 쓰는 경우가 대부분이었다.
사용법 자체는 정말 간단하다. 괜히 초기에 정말 유용한 관리 도구라고 말하는 게 아닌듯.
검색
Admin 페이지에서 검색을 하기 위해서는 간단하게 search_fields라는 리스트에 필드명을 지정해주면 끝이다. 정말 쉽죠?
search_fileds에 필드를 지정해주면 해당 필드에 검색값이 포함되는 경우만 표시해준다. 위 사진에서 Name은 "단어" + "숫자" 로 구성되어 있는데, 검색어로 cab를 지정하면 Name 필드에 cab가 포함된 경우를 찾아서 표시해준다.
분류
필터링을 대충 분류라고 부르고 있긴 한데 적당한지는 모르겠다. 어쨌든 필터링 기능을 사용하는 방법은 직전에 진행했던 검색과 거의 동일하다. 보통은 날짜, 시간 데이터를 사용해서 필터링을 진행하는게 좋겠지만 아쉽게도 지금 정의해놓은 모델들에 생성 일자, 수정 일자 필드를 넣는 것을 깜빡했기 때문에 정수 필드를 활용하는 방식으로 진행하려고 한다.
결론
- Django Admin 자체에서 지원하는 기능도 알아두면 유용하게 사용할 수 있는 기능이 더 있을 게 분명하다.
- admin.py에서 데코레이터를 사용하는 방식을 처음 봤다. 해당 방식으로 통일하면 더 편하게 Admin페이지에 모델을 등록하고 기능들을 사용할 수 있을 것 같다.
'프로그래밍 > Python' 카테고리의 다른 글
DRF - Serializer (0) | 2021.12.22 |
---|---|
Python - 예외처리 (0) | 2021.11.18 |
Django - Redis 캐싱 (0) | 2021.09.27 |
Django - 로깅 (0) | 2021.09.11 |
Conda 기본 (0) | 2020.07.29 |