전체 페이지뷰

2016년 12월 10일 토요일

Blog 앱 만들기 2, 모델 코딩

앞서서 models.py 파일을 수정해 테이블을 정의해 봤습니다.
이제 이 테이블이 Admin사이트에 보이도록 하고 Admin 사이트의 모습도 좀 바꾸도록 하겠습니다.


(myvenv) D:\myDjango\blog>subl admin.py
하여 admin.py를 띄우고

from django.contrib import admin
from blog.models import Post
# Register your models here.
class PostAdmin(admin.ModelAdmin):
    list_display = ('title''modify_date')
    list_filter = ('modify_date',)
    search_fields = ('title''content')
    prepopulated_fields = {'slug': ('title',)}
admin.site.register(Post, PostAdmin)
cs

와 같이 작성합니다.

Class PostAdmin(admin.ModelAdmin):
 ModelAdmin이라는 Admin 인터페이스를 뜻하는 클래스를 상속받았습니다.
여기에 Admin 사이트가 어떤 식으로 보여줄지 정의합니다.
이 클래스에 쓰이는 속성은 굉장히 많습니다. 장고 공식문서에서 확인 가능합니다.
여기서는 몇몇 속성만을 지정하겠습니다.
    list_display = ('title', 'modify_date')
포스트 객체를 보여줄 때 'title'과 'modify_date'를 보여주도록 합니다.
    list_filter = ('modify_date')
modify_date 컬럼을 사용하는 필터 사이드바를 보여줍니다.
    search_fields = ('title', 'content')
검색 박스를 보여주게 하고, 'title'과 ''content' 컬럼에서 검색할수 있게 합니다.
    prepopulated_fields = {'slug':('title',)}
'slug'필드는  'title'필드를 사용해서 미리 채워지도록 합니다.

admin.site.register(Post, PostAdmin)
Post와 PostAdmin을 Admin에 등록합니다.

이것으로 admin.py 작성이 끝났습니다.
테이블의 변경이 이루어졌으므로 데이터베이스에 이를 반영합니다.

(myvenv) D:\myDjango>python manage.py makemigrations
(myvenv) D:\myDjango>python manage.py migrate

이제 실제로 작동하는지 테스트 해보겠습니다.
runserver를 작동하고 admin에 접속하면...

지금까지의 사이트에 blog가 추가된 것이 보입니다. +Add를 눌러보면


다음과 같이 지금껏 작성한 모습대로 구현되었음을 알 수 있습니다.

댓글 없음:

댓글 쓰기