Django3 (7. 오픈소스를 활용한 어드민 스타일링) feat.페스트캠퍼스

min seung moon·2021년 3월 30일
0

DJANGO3

목록 보기
7/10

오픈소스를 활용한 어드민 스타일링(Theme)

https://github.com/otto-torino/django-baton

01. 라이브러리 설치

python -m pip install django-baton


02. root폴더의 settings.py에 app에 세팅하기!

  • 최상단과 최하단에 추가
INSTALLED_APPS = [
    'baton',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'rest_framework',
    'fcuser',
    'product',
    'order',

    'baton.autodiscover',
]

03. root폴더의 urls.py에 경로 설정해주기!

  • baton아래에 모든 호출들은 boton안에 있는 url이 알아서 처리해준다
from django.contrib import admin
from django.urls import path, include
from fcuser.views import index, RegisterView, LoginiView, logout
from product.views import (
    ProductList, ProductCreate, ProductDetail,
    ProductListAPI, ProductDetailAPI
)
from order.views import OrderCreate, OrderList

urlpatterns = [
    path('admin/', admin.site.urls),
    path('baton/', include('baton.urls')),

    path('', index),
    # class는 .as_view()를 입력!
    path('register/', RegisterView.as_view()),
    path('login/', LoginiView.as_view()),
    path('product/', ProductList.as_view()),
    path('product/create/', ProductCreate.as_view()),
    # 상세보기 페이지는 주소에 어떤 상품인지 나타낼수 있어야한다!
    # url에 지정을 할 수 있는데, detailView에서 기본적으로 pk라는 값을 사용
    # <int:pk> 숫자형으로 받고 받아온 숫자는 pk라는 변수로 사용
    path('product/<int:pk>/', ProductDetail.as_view()),
    path('order/create/', OrderCreate.as_view()),
    path('order/', OrderList.as_view()),
    path('logout/', logout),

    path('api/product/', ProductListAPI.as_view()),
    path('api/product/<int:pk>/', ProductDetailAPI.as_view()),
]

04. migration해주기!

 python manage.py makemigrations
 
 python manage.py migrate


  • 깨짐 현상 발생시에는 캐시 삭제!

05. title 변경!(root폴더의 setting에서 변경)

BATON = {
    'SITE_HEADER': '패스트캠퍼스 백오피스',
    'SITE_TITLE': '패스트캠퍼스 백오피스',
    'INDEX_TITLE': '패스트캠퍼스 관리자페이지',
}
INSTALLED_APPS = [
    'baton',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'rest_framework',
    'fcuser',
    'product',
    'order',

    'baton.autodiscover',
]


  • 최하단에 라이브러리 개발자와 연결된 support 변경!

  • settings.py 설정!
# Application definition
BATON = {
    'SITE_HEADER': '패스트캠퍼스 백오피스',
    'SITE_TITLE': '패스트캠퍼스 백오피스',
    'INDEX_TITLE': '패스트캠퍼스 관리자페이지',
    'SUPPORT_HREF': 'https://fastcampus.co.kr',
    'COPYRIGHT': 'copyright © 2021 Fastcampus',
    'POWERED_BY': '<a href="https://fastcampus.co.kr">Fastcampus</a>',
    'MENU_TITLE': '패스트캠퍼스',
}
INSTALLED_APPS = [
    'baton',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'rest_framework',
    'fcuser',
    'product',
    'order',

    'baton.autodiscover',
]



  • 만약 support에 메일로 연동한다면!
BATON = {
    'SITE_HEADER': '패스트캠퍼스 백오피스',
    'SITE_TITLE': '패스트캠퍼스 백오피스',
    'INDEX_TITLE': '패스트캠퍼스 관리자페이지',
    # 'SUPPORT_HREF': 'https://fastcampus.co.kr',
    'SUPPORT_HREF': 'mailto:test@test.com',
    'COPYRIGHT': 'copyright © 2021 Fastcampus',
    'POWERED_BY': '<a href="https://fastcampus.co.kr">Fastcampus</a>',
    'MENU_TITLE': '패스트캠퍼스',
}


profile
아직까지는 코린이!

0개의 댓글