장고 모델의 post_save 신호에 메소드를 연결하고 있습니다. 이렇게하면 모델이 수정 될 때마다 캐시 된 항목을 지울 수 있습니다.Django 모델을 저장하는 동안 post_save가 두 번 올리는 이유는 무엇입니까?
내가 가지고있는 문제는 모델 저장시 신호가 두 번 트리거된다는 것입니다. 꼭 아무것도 해칠 필요는 없습니다 (코드가 정상적으로 오류를 일으키지 만).
from blog.models import Post
from django.db.models import signals
def purge_cache(sender, **kwargs):
print 'Purging %s' % sender
signals.post_save.connect(purge_cache, sender=Post)
이 장고의 안정적인 1.1.1 버전을 사용하고 있습니다 :
빠른 예를 들어, 그냥 (dev에 서버를 사용) 콘솔에 모델을 인쇄.
업데이트 된 정보 : post_save 두 번 트리거하는 이유 문제가 지금 발견되어 있기 때문에 모든 사람의 의견 의견으로
, 내 질문을 수정했습니다. 내 생각에 내 models.py 코드는 두 번 가져오고 post_save는 여러 번 연결됩니다.
가져 오기/실행 이유를 알아내는 가장 좋은 방법은 무엇입니까? 이 문제의 뿌리를 찾고 있지만
당신은'post_delete' 연결 라인을 주석하는 경우,'post_save' 신호가 두 번 발생 다음 settings.py에서 "내 사이트"접두사를 제거
이 문제를 해결? – Desintegr
django 코드를보고 실제로 save()를 보내지 않습니다. post_delete 신호를 받았고 post_save를 두 번 가져 오지 않았습니까? –
@Desintegr - 지금은 시도 할 수 없지만 좋은 생각입니다.나는 오늘 밤 그것을 시도하고 질문을 업데이 트됩니다. 그래도 post_delete를 제거한 후에도 계속 발생하면 "왜 post_save 신호가 두 번 오르는 이유가 무엇입니까?"라는 질문을 변경합니다. :) models.py 코드가 두 번 실행되고 신호가 여러 번 연결되는 것일까 요? –