728x90
반응형
1. Django Admin
- 장고가 제공하는 기본 앱 (settings.py 내 INSTALLED_APPS 에서 확인 가능)
- staff/superuser 계정에 한해 접근 가능 : admin에서 users 목록을 통해서 permissions 수정
- 모델 클래스만 등록하면, 조회/추가/수정/삭제 웹 인터페이스를 admin에서 제공
2. Model 클래스 등록
- 특정 모델 클래스를 admin에 등록하면, 해당 모델을 GUI 환경에서 관리 가능
- admin.py 파일 내에 원하는 모델을 import, register, unregister 진행
- admin.site.unregister 기능은 기본 유저 모델의 등록을 해제하는 등의 용도로 사용
a. Model Admin 등록법 1 - 기본 등록
# myapp/admin.py
from django.contrib import admin
from blog.models import Post
admin.site.register(Post) # 기본 ModelAdmin으로 등록
- Post 라는 모델을 만들었다고 가정해보자.
b. Model Admin 등록법 2 - admin.ModelAdmin 상속 커스터마이징
# myapp/admin.py
from django.contrib import admin
from blog.models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ['id', 'title', 'created_at', 'updated_at' ]
admin.site.register(Post, PostAdmin)
[Model Admin 옵션]
- list_display : Admin 목록에 보여질 필드 목록
- list_display_links : 목록 내에서 링크로 지정할 필드 목록 (이를 지정하지 않으면, 첫번째 필드에만 링크가 적용)
- list_editable : 목록 상에서 수정할 필드 목록
- list_per_page : 페이지 별로 보여질 최대 갯수 (디폴트 : 100)
- list_filter : 필터 옵션을 제공할 필드 목록
- actions : 목록에서 수행할 action 목록
c. Model Admin 등록법 3 - decorator 형태로 등록
# blog/admin.py
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ['id', 'title', 'author', 'created_at', 'updated_at' ]
list_display_links = ['id', 'title']
list_editable = ['author']
list_per_page = 3
list_filter = ['author', 'created_at']
@admin.register(Post) 의 형태로 구현한다. 위의 방법보다 이 방법을 더 선호한다고 한다.
728x90
반응형
'Django' 카테고리의 다른 글
[Django] 회원, 사용자 관리 데이터베이스(테이블) 만들기, User 모델, 커스텀 유저 모델 (0) | 2024.07.12 |
---|---|
[Django] Django와 PostgreSQL 연동 (0) | 2024.07.06 |
[Django] 가상환경 세팅 및 프로젝트 생성(Mac) (0) | 2024.07.05 |