2009-05-19 6 views
2

공통 기본 클래스에서 상속하는 클래스가 많이 있습니다. 이 공통 기본 클래스는 delete 메소드에서 정리를 수행합니다. 내가 쉘에서 아동에 삭제 호출하면장고 관리 및 모델 삭제

class Base(models.Model): 
    def delete(self): 
     print "foo" 

class Child(Base): 
    def delete(self): 
     print "bar" 
     super(Child, self).delete() 

내가 얻을 : 나는 관리자를 사용하는 경우

예상

bar 
foo 

으로, 사용자 정의 함수가 호출되는 것처럼 보이지 않는다 삭제 . 나는 명백한 것을 놓치고 있는가?

감사합니다,

추신 이것은 분명히 내가 사용하고있는 코드의 단순화 된 버전입니다. 오타가 포함되어 있다면 사과드립니다. 자유롭게 의견을 남기면 고칠 것입니다.

답변

9

this 문서 버그 보고서 (Document that the admin bulk delete doesn't call Model.delete())에 따르면, 관리자의 대량 모델의 삭제 함수를 호출하지 않습니다 삭제합니다. 관리자에게서 대량 삭제를 사용하는 경우 문제가 설명됩니다.

이 티켓에 대한 문서가 추가되었으므로 모델의 삭제 기능을 호출하는 사용자 정의 대량 삭제 기능을 작성하는 것이 좋습니다.

이 동작에 대한 추가 정보는 here입니다. 대량 삭제 작업은 효율을 위해 모델의 delete() 메서드를 호출하지 않습니다.

+0

+1 ,, nice find. –

+0

고마워, 정확히 내가 무엇을 찾고 있었는지. –