Menu
CoddyTech

관리자 사용자 지정

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 21번째.

관리자 페이지의 도서 목록에는 각 도서의 __str__을 표시하는 열 하나만 있고, 아무것도 찾을 방법이 없습니다. 데코레이터로 등록한 ModelAdmin 클래스가 이를 바꿉니다. ForeignKey book이 있는 Loan의 경우:

@admin.register(Loan)
class LoanAdmin(admin.ModelAdmin):
    list_display = ["book", "friend", "lent_on", "returned"]
    search_fields = ["friend", "book__title"]
    list_filter = ["returned", "lent_on"]

list_display는 열을 선택합니다. ForeignKey 열에는 연결된 행의 __str__이 표시되며, 다대다 필드는 열이 될 수 없습니다. search_fields는 검색 상자를 추가합니다. ForeignKey를 통해 검색하려면 두 개의 밑줄 뒤에 다른 모델의 필드 이름을 지정합니다. book__title처럼 말이죠. book만 지정하면 텍스트가 아니라 링크이므로 검색 시 오류가 발생합니다. list_filter는 필터 사이드바를 추가합니다.

데코레이터는 admin.site.register(Loan, LoanAdmin)과 같은 역할을 합니다. 각 모델은 한 번만 등록하세요. 두 번째로 등록하면 AlreadyRegistered 오류로 사이트가 중단됩니다.

challenge icon

챌린지

쉬움

books/admin.py에서 Book을 일반 등록하는 대신 BookAdmin을 지정하세요. 도서 목록에는 다음이 있어야 합니다.

  • title, author, year, genre, is_read 열
  • 제목이나 저자 이름으로 도서를 찾는 검색 상자
  • genre와 is_read로 필터링하는 사이드바

실행을 누르고 다시 로그인한 다음 herbert를 검색하세요.

직접 해보기

from django.contrib import admin

from .models import Author, Book, Tag

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Tag)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드