프로젝트를 개발하다 보면 진행 과정이나 개발 완료 후에도 데이터베이스를 다룰 일이 많이 발생합니다. 장고의 Admin 사이트는 데이터베이스에 들어있는 데이터를 쉽게 관리할 수 있도록 데이터의 생성, 조회, 변경, 삭제 등의 기능을 제공합니다.

프로세스의 상태조회, 기동 및 정지 등의 기능을 제공하지 않습니다.

데이터의 CRUD 기능을 어드민 화면을 통해서 생각합니다.

admin 파일을 잘 수정해야합니다.

필드 순서 변경하기

class QuestionAdmin(admin.ModelAdmin):
	fields = ['pub_date', 'question_text'] #필드 순서 변경

admin.site.register(Question, QuestionAdmin)
admin.site.register(Choice)

fields에 순서대로 나오게 되어 있습니다.

각 필드를 분리해서 보여주기

class QuestionAdmin(admin.ModelAdmin):
	fieldsets = [
		('Question Statement', {'fields': ['question_text']}),
		('Date Information', {'fields': ['pub_date']}),
	]

fieldsets에 있는 각 튜플의 첫 번째 인자가 해당 필드의 제목이 됩니다.

필드 접기

('Date Information', {'fields':['pub_date'], 'classes': ['collapse']}),

접고 필수 있는 필드를 만들 수 있따.


외래키 관계 화면

1:N

지금까지는 Question 모델 클래스에 대해서 작업을 해왔으나, 이번 절에서는 Choice 모델 클래스에 대해 추가, 변경 작업을 해보겠습니다. 여기서는 Question과 Choice 모델 클래스는 1:N 관계로 이루어져 있고, 서로 외래키로 연결되어 있습니다. Choice 모델 클래스 화면에서 이 관계가 어떻게 나타나는지 테스트해보자.

이 모델은 질문 하나에 선택 하나인데, 이 질문당 선택지가 3개면 3개나 만들어야 하기때문에 기존 그대로 만들었으면 불편합니다.

이를 바꾸기 위해서 다음과 같이 작업합니다.

Question 및 Choice를 한 화면에서 변경하기