2023-06-30 TIL

0v0baek·2023년 6월 30일
1

TIL

목록 보기
87/92

[Django] django admin action

👉 Django 공식문서

❓ action이 뭐야?

Django Admin에서는 action이라는 친구를 제공한다.

간단하게 말하자면 같은 작업을 여러군데에 일괄적으로 해줘야 할 때 쓰는 django 내장 기능이다.

여기 보이는 action이 그 예!

기존에는 오브젝트 들어가서 체크하고 세이브하고 다시 나와서 다음 오브젝트 들어가고 반복하고... 이렇게 진행했다면
이 과정을 한번에 처리해준다!!

✅ 그래서 어떻게 적용시키는데?

전체 코드를 함께 보자.

# admin.py

from django.contrib import admin
from quizzes.models import *


@admin.action(description="is_pass = True")
def is_pass_true(modeladmin, request, queryset):
    """Django Admin에서 is_pass을 일괄적으로 True 처리"""
    queryset.update(is_pass=True)


class UserQuizAdmin(admin.ModelAdmin):
    list_display = ["pk", "user", "title", "is_pass"]
    ordering = ["is_pass"]
    actions = [is_pass_true]


admin.site.register(UserQuiz, UserQuizAdmin)

@admin.action이라는 decorator를 사용해서 적용시킨다!
그리고 사용할 모델의 Admin class를 정의해주고,
action안에 넣어주면 적용 끝!!

아주 간편하다

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글