1 minute read

  • 관리자 폼 커스터마이징

    admin 에 객체 등록할 때 Django에 원하는 옵션을 알려주면 커스터마이징 가능

    • admin.site.register()

      모델 관리자 옵션 변경할 때 마다 모델 어드민 클래스 만든 뒤 두번째 인수로 전달

    • fieldsets

      폼 분할

      튜플 첫 번째 요소는 제목

  • 관련된 객체 추가

    admin에 직접 추가할 수 있지만 model 끼리의 관계가 직관적이지 않음

    Django는 ForeignKey 가 select로 표현된다는 것 인지

    register() 호출 제거후 admin에서 class 생성 및 관계 설명

    • TabularInline

      관련된 객체는 좀 더 조밀하고 테이블 기반 형식으로 표시됨

  • 관리자 변경 목록 커스터마이징

    • 어드민 페이지

      자동으로 페이징 기능 제공

      변경 목록 페이지네이션, 검색 상자, 필터, 날짜-계층구조, 컬럼-헤더-정렬 모두 함께 작동

    • list_display

      어드민 옵션

      개별 필드 표시 기능

      models 에 속성 부여하여 임의의 메서드도 정렬 지원

    • list_filter

      어드민 옵션

      필터 기능

    • search_fields

      어드민 옵션

      검색 기능

  • 관리자 룩앤필 커스터 마이징

    • 순서

      1. 프로젝트 디렉토리에 templates 디렉토리

      2. setting.py 에서 DIR 옵션에 추가

      3. Django 소스파일 가져온 후 커스터마이징

    • 템플릿 구성

      하나의 커다란 템플릿 디렉토리에 모든 템플릿 함께 넣을 수 있지만 재사용하기 좋지 않음

    • 템플릿 재정의 방법

      실제 프로젝트에서는 django.contrib.admin.AdminSite 속성 이용하는 것이 개별 커스터마이징에 유리

  • 어플리케이션의 템플릿 사용자 정의

    DIRS가 기본설정으로 비어있을 시 APP_DIRS 설정이 True 이므로 Django는 각 앱 패키지 내에서 templates/ 서브 디렉토리를 자동으로 찾아서 대체

    django.contrib.admin도 앱

    admin 탬플릿 좀 더 정교하게 수정할 경우 프로젝트 템플릿 대신 어플리케이션 템플릿 수정이 더 현명하며 다른 새 프로젝트에 포함시킬 수 있음.

  • admin 인덱스 페이지 수정

    admin 어플리케이션과 함께 등록된 INSTALLED_APPS 의 모든 앱 사전순으로 표시.

    커스터마이징 할 템플릿은 admin/index.html.

    • app_list

      템플릿 변수

      설치된 모든 장고 앱을 포함

Categories:

Updated: