-
django admin get_queryset method override하기django 2021. 2. 16. 18:03
장고 어드민에서 get_queryset 메서드 오버라이드 하는 방법을 알아보겠습니다.
아래 두 사진은 예시 어드민 코드와 get_queryset 메서드를 오버라이드 하지 않았을 때의 어드민 화면입니다.
class IncomeAdmin(admin.ModelAdmin): model = Income list_display = ("price", "category", "user", "memo") admin.site.register(Income, IncomeAdmin)
이제 get_queryset 메서드를 오버라이드 해보겠습니다.
아래는 코드와 결과 화면입니다.
class IncomeAdmin(admin.ModelAdmin): model = Income list_display = ("price", "category", "user", "memo") def get_queryset(self, obj): qs = super(IncomeAdmin, self).get_queryset(obj) return qs.filter(price__gt=10000)
10000원 이상인 것들만 보이도록 필터를 걸었기 때문에 2000원과 1000원짜리 데이터는 사라졌습니다.
다른 필드(category, user, memo)를 통해서도 필터를 걸 수 있습니다.
*참고로 filter 대신 exclude를 사용할 수도 있습니다.
'django' 카테고리의 다른 글
사수 없이 버틴 주니어 백엔드 개발자 첫 1년 회고 (16) 2021.06.22 django admin get_fields method 오버라이드 하기 (0) 2021.02.17