1. Admin site register

Django admin은 준비된 등록 명령을 통해 간단하게 admin 페이지를 구축할 수 있습니다.

1.1 admin.site.register

admin.site.register()라는 매서드는 다음과 같이 사용할 수 있습니다.

# blog/admin.py
from django.contrib import admin
from .models import Post

admin.site.register(Post)

admin.site.register(Post)는 Post 모델을 Admin 페이지에서 관리할 수 있도록 등록하는 매서드입니다. 이렇게 등록한 모델은 /admin url로 접속할 경우, 등록된 모델을 확인할 수 있습니다.

1.2 class

Class는 다음과 같이 사용할 수 있습니다.

# blog/admin.py
from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
	pass

admin.site.register(Post)

1.3 Decorator

admin register를 Decorator로도 등록할 수 있습니다.

# blog/admin.py
from django.contrib import admin
from .models import Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
	pass

이처럼 Admin 사이트에서 하나씩 모델을 등록하게 될 경우, 모든 관리자 페이지가 동일한 디자인으로 적용됩니다. 따라서 관리자 페이지 별 커스텀은 AdminSite라는 클래스를 상속받아 새롭게 생성할 수 있습니다.

2. Admin page 커스텀하기