Django for KN(Koinonia)
- 해당 문서는 사귐의 교회 청소년부 출석부 프로젝트를 위한 Django 학습 내용과 개발 과정을 기록함
django.contrib.admin
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls)
]
- 기본 경로이며 admin.site.urls는 from django.contrib import admin에서 처리하겠다는 의미, 주소 변경을 권고(URL reverse )
model class를 admin에 등록하기
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin)
- 파이썬의 장식자 문법 이용, 대상을 wrapping하여 model을 admin에 등록.
model class에서 str구현
from django.db import models
class Post(models.Model):
message = models.TextField()
is_public = models.BooleanField(default=False, verbose_name='공개여부')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.message
def message_length(self):
return len(self.message)
message_length.short_description = '메세지 글자수'
- class로부터 나온 어떤 객체에 대해 문자열 표현이 필요할 때 = Java의 ToString과 동일.
- def message_length(self)로 인자가 없는 속성, 함수의 추가가 가능하다.
속성정의
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ['id', 'message', 'message_length', 'is_public', 'created_at', 'updated_at']
list_display_links = ['message']
search_fields = ['message']
list_filter = ['created_at', 'is_public']
def message_length(self, post):
return len(post.message
- list_display
- 모델 리스트에 출력할 컬럼을 지정.
- admin상에서 리스트 지정한 컬럼들을 확인할 수 있다.
- list_display_links
- search_fileds
- admin에 search 창 생성 및 filter 기능 구현
- list_filters
- admin에 created_at 기준으로 list 형식의 filter 기능 구현