택시짱의 개발 노트

19장. 장고 어드민 이용하기 본문

Django(장고)

19장. 장고 어드민 이용하기

택시짱 2021. 11. 8. 23:44

장고가 다른 프레임워크에 비교해서 장점은 바로바로 "어드민"

19.1 어드민 기능은 최종 사용자를 위한 것이 아니다

  • 장고 어드민은 사이트 관리자를 위한 기능이지, 최종 사용자를 위한 기능은 아니다.

19.2 어드민 기능의 커스터마이징 대 새로운 뷰 기능

  • 일반적으로 장고의 어드민 기능은 깊은 수준까지 커스터마이징할 필요가 없다.
  • 고객을 위한 고객용 관리 대시보드를 구현하는 것이 어드민 기능을 수정하는 것보다 항상 고객의 요구를 더 충족 시킨다.

19.3 객체의 이름 보여 주기

  1. 모든 장고 모델에 대해서 항상 str()메서드를 구현하자.
from django.db import models

class IceCreamBar(models.Model):
    name = models.CharField()
    shell = models.CharField()
    filling = models.CharField()
    has_stick = models.BooleanField()

    def __str__(self):
        return self.name

>>> IceCreamBar.objects.all()
[<IceCreamBar: Vanilla Crisp>, <IceCreamBar: Mint Cook>]

19.3.2 list_display 사용하기

  • 어드민 리스트 페이지에 추가적으로 다른 필드들을 보여주고 싶을때 사용
from django.contrib import admin
from .models import IceCreamBar

@admin.register(IceCreamBar)
class IceCreamBarAdmin(admin.ModelAdmin):
    list_display = ("name", "shell", "filling",)

19.4 ModelAdmin 클래스에 호출자 추가하기

from django.contrib import admin
from django.core.urlresolves import reverse
from django.tuils.html import format_html

from icecreambars.models import IceCreamBar

@admin.register(IceCreamBar)
class IceCreamBarAdmin(admin.ModelAdmin):
    list_display = ("name", "shell", "filling",)
    readonly_fields = ("show_url")

    def show_url(self, instance):
        url = reverse("ice_cream_bar_detail",
                     kwargs={"pk": instance.pk})
        response = format_html("""<a href="{0}">{1}</a>""", url, url)
        return response

19.5 다중 사용자가 이용하는 환경에서 list_editable 이용은 피하자

19.6 장고의 어드민 문서 생성기

  • django에서 지원하는 기능 중 django.contrib.admindocs라는 패키지가 있다. 이 패키지는 모델, 뷰, 커스텀 템플릇 태그, 커스텀 필터 같은 프로젝트 컴포넌트의 독스트링(docsting)을 보여주기 때문에 프로젝트 리뷰 차원에서 매우 유용하다.
  • 개인적인 생각으로 한번 사용해보는것은 어떨까 라는 생각

19.7 장고 어드민과 장고 어드민 문서 안전하게 보관하기

  • 26장을 참고.....

19.8 장고 어드민에 커스텀 스킨 이용하기

  • django-grappelli
  • django-suit
  • django-admin-bootstrapped

19.9 요약

  • 장고 어드민은 누구를 위한 것인가?
  • 언제 장고 어드민을 이용할 것이며 언제 새로운 대시보드를 제작, 이용할 것인가?
  • 객체의 문자열 표현
  • 장고 어드민 클래스에 호출자 더하기
  • django.contrib.admin.ModelAdmin.list_editable을 이용할 때 주의점
  • 장고의 어드민 문서 이용하기
  • 장고 어드민의 보안에 대한 권장
  • 커스텀 장고 스킨에 대한 충고
반응형
Comments