Django Admin page
장고에서 기본적으로 page 를 제공한다. 이녀석을 이용해서 database 를 다룰 수 있다. 기본적으로 django 에서 사용하는 model (db 의 table)에 대한 manipulation 화면은 이미 만들어져 있지만, 내가 새롭게 추가한 model 에 대해서는 직접 만들어야 한다.admin page url
- http://localhost:8080/admin/
admin page 계정 만들기 :
- python manage.py createsuperuser --settings=beluga.settings.local
그러면 db 의 auth_user table 에 admin 계정이 하나 만들어진다.
admin page
이제 admin page 에 login 을 하고 들어가면 아래와 같은 화면이 나온다. 여기서 database 의 값들을 변경하고, 추가할 수 있다.admin page 가 어떻게 만들어지는가?
이부분은 ref. 1 의 How the Admin Site Works 에 나와있다. 대략적으로 요약하면django 서버가 실행될 때 urls.py 에서 URLconf 를 불러오는데, 이 때 admin.autodiscover() 를 실행한다. 이 admin.autodiscover() 는 INSTALLED_APPS 에 있는 django.contrib.admin 가 설정되어 있다면 실행된다.
여하튼 그래서 각 application 에서 admin.py 파일을 찾아보게 된다. 그리고 admin.py 의 code 를 실행하게 된다.
admin.py
위에서 얘기한 것 처럼 admin.py 에 우리가 원하는 내용을 만들어 넣어야 한다. 일단 우리가 만들어 놓은 model 을 추가해 보자. 소스는 ref. 3을 참고했다.from django.contrib import admin from forecast.models import PageSettings admin.site.register(PageSettings)또는
from django.contrib import admin from forecast.models import PageSettings class PageSettingsAdmin(admin.ModelAdmin): pass admin.site.register(PageSettings, PageSettingsAdmin)
이렇게 하면 Author 에 대한 내용이 admin page 에 보이게 된다. 첫번째 처럼 AuthorAdmin 을 추가하지 않으면, 기본적으로 default ModelAdmin 을 상속받게 된다. 그럼 간단한 '추가', '수정', '삭제' 등의 동작이 가능해 진다. 그 밖의 동작을 만들려고 할 때 위처럼 "새로운 ModelAdmin"(AuthorAdmin) 을 만들어서 등록해주면 된다. ModelAdmin 의 내용은 여기를 참고하자.
손쉽게 만들어졌다. |
추가적인 기능 만들기
이부분은 ref. 2 를 참고하자.Reference
- Chapter 6: The Django Admin Site
- Admin actions | Django documentation | Django
- The Django admin site | Django documentation | Django
댓글 없음:
댓글 쓰기