잡뿌
STACKBASE
잡뿌
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • 회고 (0)
    • 프로그래밍 (14)
      • Python (9)
      • Django (5)
    • 데브옵스 (0)
    • 클라우드 (0)
      • AWS (0)
      • AZURE (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • django
  • Python
  • nosql
  • git
  • pyspark
  • ubuntu
  • list
  • MongoDB
  • Eclipse
  • 툴바안뜸
  • json
  • debug_toolbar
  • SCALA APP
  • django-debug-toolbar
  • debug toolbar
  • Spark

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
잡뿌

STACKBASE

[Django]  admin을 통한 데이터 관리
프로그래밍/Django

[Django] admin을 통한 데이터 관리

2022. 2. 17. 22:30
반응형

프로젝트 urls.py

장고 프로젝트  urls.py에 보면, admin/ 으로 접속 url이 urlpatterns에 추가 되어 있다. 

장고 app의 models에 있는 클래스를 장고app의 admin.py에 등록을 해주면 

admin/페이지에서 조회/추가/수정/삭제 할 수 있도록 웹UI를 제공해 준다.

 

1. 등록 방법 3가지

  • 1번째
admin.site.register(ClassName)
# 기본 ModelAdmin으로 동작
  • 2번째
class ExampleAdmin(admin.ModelAdmin):
	pass
    
admin.site.register(Example, ExampleAdmin)
# 지정한 ModelAdmin으로 동작
  • 3번째
@admin.register(Example)
class ExampleAdmin(admin.ModelAdmin):
	pass
    
    
# 데코레이터를 이용한 방법

2. admin 커스터 마이징

  • 1번 : 모델 리스트에 출력할 컬럼 지정
  • 2번 : detail 링크를 걸 속성 지정
  • 3번 : 검색 UI 추가 
  • 4번 : 공개 여부 컬럼 지정
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
	#1번
    list_display = ['id', 'message', 'created_at', 'updated_at', 'message_length', 'is_public']
    #2번
    list_display_links = ['message', 'created_at']
    #3번
    search_fields = ["message"]
    #4번
    list_filter = ['is_public']

3. App model 클래스 문자열 표현

    def __str__(self):
       return f'Custom Post object ({self.id})'
    # 인자로 self만 넘길 수 있다.
    
    def message_length(self):
        return len(self.message)
    message_length.short_description = "메세지 글자 수"
    
    
    #### admin에서 표현 할 경우
    def message_length(self, post):
        return len(post.message)
  • 객체에 대한 문자열 표현이 필요할 경우 __str__로 구현
  • @property 장식자를 통해 함수로 속성을 정의 할 수 있다. 
  • message_length 함수와 같은 경우 models.py와 admin.py 어디서 구현할지 선택이 가능하다.
반응형

'프로그래밍 > Django' 카테고리의 다른 글

[Django] 장고 쉘!  (0) 2022.02.21
[Django] 장고 소개  (0) 2022.02.16
[Django] debug toolbar 설치  (0) 2022.01.28
[Django] debug toolbar 오류 Fix  (0) 2022.01.28
    '프로그래밍/Django' 카테고리의 다른 글
    • [Django] 장고 쉘!
    • [Django] 장고 소개
    • [Django] debug toolbar 설치
    • [Django] debug toolbar 오류 Fix
    잡뿌
    잡뿌
    블로그를 방문해주셔서 감사합니다.

    티스토리툴바