2011-03-08 2 views
1

내 모델에서 delete() 메소드를 정의했습니다. 캐시를 지우고 엄지 손가락을 지우는 데 사용합니다. admin에서 요소를 삭제하면 세부 정보 (편집 모드)에서 캐시가 지워지고 모든 엄지 손가락이 삭제됩니다. 그러나 요소 목록에서 확인란을 선택하면 여러 요소를 한꺼번에 삭제하려고 할 때 요소가 삭제되지만 삭제되지 않으므로 모델 삭제 방법이 만들어지지 않습니다./관리자 목록 삭제 및 모델 delete() 메소드

어떻게 할 수 있습니까? 고쳐?

답변

3

the documentation의 첫 번째 섹션에 있습니다. Django Admin은 효율상의 이유로 질의 객체에 delete을 호출합니다. 이는 각 인스턴스 삭제 메소드를 완전히 무시합니다. 문서를 읽으십시오.

이 동작을 재정의하려면 원하는 항목 (예 : Model.delete())을 호출하는 등 원하는 방식으로 삭제를 수행하는 사용자 지정 동작을 작성하기 만하면됩니다. 문서에 설명 된 바와 같이

+0

를 - 그것은 작동합니까? – robos85

+0

내가 링크 된 문서를 읽으십시오. 'action'을 생성해야합니다. –

0

, 당신은 delete selected 작업을 재정의해야 : 나는 관리자에 delete_model을 정의 할 수 있습니다 경우에 따라서

def delete_selected(modeladmin, request, queryset): 
    for element in queryset: 
     element.delete() 
delete_selected.short_description = "Delete selected elements" 

class ElementAdmin(admin.ModelAdmin): 
    actions = [delete_selected] 

admin.site.register(Element, ElementAdmin) 
관련 문제