ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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를 사용할 수도 있습니다.

    댓글

Designed by Tistory.