Я присоединяю метод к сообщению post_save моей модели Django. Таким образом, я могу очистить некоторые кешированные элементы всякий раз, когда изменяется модель.
Проблема, с которой я сталкиваюсь, заключается в том, что сигнал запускается дважды, когда модель сохраняется. Это не обязательно повредит что-либо (код будет просто изящно выходить из строя), но он не может быть прав.
Быстрый пример, просто печать модели на консоль (с использованием сервера dev):
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 Django.
Обновленная информация:
С отзывами от всех комментариев, я изменил свой вопрос, потому что проблема теперь обнаруживает, почему post_save запускается дважды. На мой взгляд, в настоящий момент мой код models.py импортируется дважды и что post_save подключается несколько раз.
Что было бы лучшим способом выяснить, почему он импортируется/запускается дважды?