41 장고어드민 커스터마이징 - FK

41.1. 어드민 수정하기

py_blog 과 py_blog_detail 테이블을 생성했습니다.

1:N 관계이며, ForeignKey 로 연결되어 있습니다.

py_blog 에 데이터 등록하면서 py_blog_detail 테이블에도 같이 데이터를 넣겠다는 뜻이죠.

admin.py에 detail 모델을 등록하면 모델 마다 따로따로 데이터를 넣어야 합니다.

위 화면에서 detail도 같이 입력할 수 있도록 수정하겠습니다.

41.1. 어드민 수정하기 - admin.py

위 그림과 같이 코드를 추가합니다.

list_display 는 목록 화면의 필드 표시입니다.
fieldsets 의 fields는 py_blog 의 입력받을 컬럼입니다.
inlines 에 containPythonBlog 추가하여 세부 사항(PyBlogDetail)에 추가할 수 있습니다:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#myapp/blog/admin.py
class containPythonBlog(admin.StackedInline):
    model = PyBlogDetail
    extra = 3

class admin_pythonblog(admin.ModelAdmin):
    list_display = ('id','title','regist_dt','update_dt')

    fieldsets = [ 
        (None, { 'fields': ['title'] }),        
    ]
    inlines = [ containPythonBlog ]

admin.site.register(PyBlog, admin_pythonblog)
admin.site.register(PyBlogDetail)

41.3. 장고 어드민 접속 - py_blog 글쓰기

이제 py_blog 와 py_deatail 데이터를
같이 입력할 수 있게 나옵니다.

이제 글을 등록 하세요.!!