2010-12-09 2 views
2

내가 신호를 만들어 작동하지 않습니다 파일의 바닥 글, 내가 테스트 목적으로 단지 내 저장()에서, 이제 디버그 문자열 :사용자 정의 신호

def update_mode(sender, **kwargs): 
    print "UPDATING" 
sig_published.connect(update_mode, sender=MyModel) 

를 출력하는 함수에 연결 - 방법, 난을 보내려고 신호 :

sig_published.send(sender=self) 

하지만 아무 것도 출력하지 않습니다. pre_save와 같은 내장 신호를 사용하면 :

pre_save.connect(update_mode, sender=MyModel) 

이 작동합니다. 어떤 아이디어? 당신이 MyModel클래스에 일치하고 연결하는 동안

+0

'저장'방법을 보여줄 수 있습니까? –

답변

5

당신은 당신의 모델의 예를 동일 sender로 신호를 방출하고 있습니다. 이 둘은 같은 대상이 아니므로 수신기가 신호를 무시합니다. pre_save emitting code과 비교할 수 있습니다. 인스턴스가 아닌 클래스를 사용합니다.

+0

오, 이런, 고마워. 리스너를 sig_published = Signal (provide_args = [ 'instance']) 및 그에 따라 보낸 사람으로 변경했으며 작동합니다. – schneck

관련 문제