django admin 에 action 추가하기

django admin에서 데이터를 삭제하는 기능밖에 없는데, 
다른 추가기능을 하고 싶으면 actions에 기능을 추가한다.

admin 필드에 함수를 생성하고 아래와 같이 actions 목록에 추가한다.
함수에는 modeladmin, request, queryset 파라미터가 들어간다.
queryset에 모델에 대한 쿼리셋 결과가 들어간다.
아래 코드는 수정하는 모델에 필드값을 U로 업데이트하는 내용이다.
short_description 에는 admin에서 콤보목록에 보이는 값을 설정한다.

def make_used(modeladmin, request, queryset):
    queryset.update(use_flag='U')
make_used.short_description = "Make seller's user_flag = USE"

@admin.register(Seller)
class SellerAdmin(admin.ModelAdmin):
    list_display = ['trade_code', 'trade_name', 'use_flag',
                    'email', 'createdby', 'updatedby', 'username', ]
    actions = [make_used]

댓글

이 블로그의 인기 게시물

dtsrun 실행하기

Set nocount on 옵션 설정하기

Slug가 뭘까?