일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- removetooltip
- 건대입구맛집
- JavaScript
- Python
- Django
- 강원도속초맛집
- python3
- 가상환경
- 추상클래스
- c언어문자열
- BeautifulSoup
- 부스트코스
- 장고
- richtext
- 자바
- 상속
- FLUTTER
- 코딩독학
- popupmenubutton
- 알고리즘
- 성수동카페
- 컴퓨터과학
- DOM
- 포인터
- 속초여행
- 남양주맛집
- 정렬알고리즘
- 노마드코더
- pipenv
- 아스키코드
- Today
- Total
YUYANE
Django / ModelAdmin 본문
학습 강의
nomadcoders.co/airbnb-clone/lobby
Django Admin Interface
장고 앱에서 모델을 생성하면, 신뢰할 수 있는 유저(일반 유저x, 웹마스터 o, 프론트엔드용이 아니다)가 웹사이트를 모델 중심으로 관리할 수 있는 인터페이스가 자동으로 생성된다.
ModelAdmin
ModelAdmin 클래스는 admin 인터페이스에 있는 모델을 나타내며, 보통 admin.py 에 저장되어있다.
우선 예시 먼저 살펴보자. myapp의 models.py의 Author 클래스를 admin.py에 연결하려고 한다. 아래 두 가지 방법 중 어느 것을 사용해도 상관 없다.
- 사용 코드 예시 (1)
from django.contrib import admin
from myproject.myapp.models import Author
class AuthorAdmin(admin.ModelAdmin):
pass
admin.site.register(Author, AuthorAdmin)
- 사용 코드 예시 (2) : decorator 사용
from django.contrib import admin
from .models import Author
@admin.register(Author)
class AuthorAdmin(admin.ModelAdmin):
pass
ModelAdmin 유용한 기능
아래 링크를 통하면 더 많은 기능에 대해 참고할 수 있다. 이번 포스팅에서는 그 중 몇 가지만 보려고 한다.
docs.djangoproject.com/en/3.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields
ModelAdmin.fieldsets
- admin form 페이지의 레이아웃을 관리하기 위해 설정할 수 있는 기능이다.
- 여러 가지 필드들을 동일한 카테고리에 모아서 보여주고 싶은 경우에 fieldsets을 통해 display 형태를 바꾸면 된다.
- format : ( name, field_options)
name 에는 fieldset을 대표할 만한 이름을, field_options에는 fieldset에 담길 정보를 dictionary 형태로 넣는다.
- 사용 예시
fieldsets = (
(None, {
'fields': ('url', 'title', 'content', 'sites')
}),
('Advanced options', {
'classes': ('collapse',),
'fields': ('registration_required', 'template_name'),
}),
)
ModelAdmin.list_filter
- admin 리스트를 보여주는 페이지에 원하는 기준에 따라 filter를 적용하고 싶을 때 사용
- 설정 시 오른쪽 사이드 바에 보여진다.
- list나 tuple 로 정의되며, 각각의 요소는 다음의 타입들만 허용된다.
BooleanField, CharField, DateField, DateTimeField, IntegerField, ForeignKey or ManyToManyField
- 사용 코드 예시
No를 선택하면, superhost = False 인 객체들만 리스트에 나타난다.
list_filter = (
'superhost',
)
ModelAdmin.list_display
- admin 페이지에서 리스트를 보여줄 때 원하는 field를 테이블 형식으로 함께 보여준다.
- 사용 코드 예시
list_display = (
"username", "first_name", "last_name", "email", 'is_active', "language", 'currency', 'superhost', 'is_staff', 'is_superuser',
)
ModelAdmin.search_fields
- admin 페이지에서 원하는 필드로 검색 기능을 추가하고 싶을 때 사용하는 기능이다.
- 검색 결과 매칭되는 것들만 리스트에 보여진다.
- Prefix를 이용하여 원하는 방식으로 검색을 가능하게 할 수 있다.
- 사용 코드 예시
search_fields = ("name",)
참고
docs.djangoproject.com/en/3.1/ref/contrib/admin/
'Framework > DJANGO' 카테고리의 다른 글
Django / Managers와 QuerySet (related_name) (0) | 2021.02.24 |
---|---|
Django / Meta Class & Abstract Base Class (0) | 2021.02.23 |
Django / ForeignKey 와 ManyToManyField (0) | 2021.02.23 |
Django / Model Field (0) | 2021.02.23 |
Django / migrations을 하는 이유 (0) | 2021.02.20 |