Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 파이썬
- 롤
- lol
- git
- SQL
- Riot
- 스파르타내일배움캠프TIL
- 리그오브레전드
- sort
- 백준
- java
- 라이엇
- 그리디알고리즘
- 내일배움캠프
- 그리디
- 코딩테스트준비
- 탐욕알고리즘
- greedy
- python
- 장고
- 알고리즘
- programmers
- github
- drf
- 자바
- API
- 코딩테스트
- 스파르타내일배움캠프
- Django
- 프로그래머스
Archives
- Today
- Total
Lina's Toolbox
Django Admin 본문
관리자 페이지 (Admin Site)
우리가 운영을 하다보면..
- 실제 서비스를 운영하다보면 서비스를 관리하는 페이지가 필요합니다.
- 모든 관리자에게 DB를 열어주거나, 매번 SQL을 입력해서 보거나 수정할 수 는 없기때문입니다.
(콜센터 직원 등, 비개발자들이 디비에 접근해야할 경우를 위해!)
→ 이런 이유로 관리자용 페이지가 필요합니다.
Django의 Admin Site
- Django는 기본적으로 관리자 사이트를 제공하고 있습니다. (심지어 이쁨)
- Django Framework를 선택하는 이유가 되기도하는 강력한 장점 중 하나입니다.
- 직접 record를 조회, 생성, 수정, 삭제할 수 있는 모든 기능을 제공합니다.
- 이외에도 각종 권한 부여를 해서 제한하거나, 페이지 자체를 커스텀 하는 것도 가능합니다!
project app / urls.py
path("admin/", admin.site.urls),
urls.py의 path("admin/", admin.site.urls)은, 우리가 설정해준게 아닌 설정 초반때부터 있었다!
Django에서 기본적으로 제공하는 관리자 페이지가 나옵니다!
모든 유저가 다 여기서 들어갈 수 있는 것은 아니고,
is_superuser > is_staff 더 큰 권한이 필요합니다.
어드민 페이지에 접근하려면 최소 is_staff =1 이여야함.
직접 사용해보기
admin 계정 생성
python manage.py createsuperuser
- 최소 is_staff 권한이 필요합니다.
admin에서 관리할 모델 등록
- 관리자 페이지에서 사용할 모델은 직접 등록해주는것이 필요합니다.
- 각 앱의 admin.py에서 설정 가능합니다.
articles
기본 등록하기
# articles/admin.py
from django.contrib import admin
from .models import Article
admin.site.register(Article)
이렇게 등록한 뒤 살펴보면 조금 전 등록한 모델이 보입니다!
등록한 모델은 관리자 페이지에서 접근 가능합니다.
Users는 있는데.. 우리가 원하는 articles나 다른 테이블들은??
→ 등록만 해주면됨!
→ 각각의 앱에 이미 admin.py가 있다.
기본적인 CRUD를 모두 포함하고 있습니다.
커스텀 하기
- 이렇게 모델을 추가했습니다. 그러나 만약 게시글의 수가 많아진다면 관리하기가 힘들겠죠?
- 원하는 게시물만 검색해볼 수 있게 하면 좋을 것 같네요.
- 작성일을 기준으로 정렬해서 볼 수 있게하면 좋을 것 같아요.
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ("title", "created_at")
search_fields = ("title", "content")
list_filter = ("created_at",)
date_hierarchy = "created_at"
ordering = ("-created_at",)
- search_fields: 적어준 필드들 내에서 검색하고, 필드들 중 하나라도 검색값과 일치하는 값있으면 리턴
- 이 밖에도 거의 모든 부분에 대해 커스텀이 가능합니다!
- 예를 들어 CSS와 Javascript를 사용하여 원하는 대로 커스텀해서 사용하는 것도 가능합니다.
💡 실제로 현업에서도 장고 어드민 페이지를 커스텀하여 어드민페이지로 많이 사용합니다!
- 예를 들어 CSS와 Javascript를 사용하여 원하는 대로 커스텀해서 사용하는 것도 가능합니다.
'스파르타 내일 배움 캠프 AI 웹개발 과정 > Django framework' 카테고리의 다른 글
Custom UserModel 활용하기 (1) | 2024.09.16 |
---|---|
Django Model Relationship (1:N) (0) | 2024.09.16 |
Django Static & Media (0) | 2024.09.12 |
Django로 회원가입 기능 구현하기 (0) | 2024.09.11 |
Pydantic란? 사용법 / Serializer와 비교 (0) | 2024.09.10 |