[컴][웹] Django 의 admin page 에 기능추가 하기

장고 admin 장고 어드민 / 장고 어드민 페이지 제작 / django admin page 기능추가


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

  1. Chapter 6: The Django Admin Site
  2. Admin actions | Django documentation | Django
  3. The Django admin site | Django documentation | Django



댓글 없음:

댓글 쓰기