Ответ 1
Одним из способов достижения этого является добавление декоратора, который ищет аргумент raw ключевого слова, когда сигнал отправляется в вашу функцию приемника. Это хорошо сработало для меня на Django 1.4.3, я не тестировал его на 1.5, но он все равно должен работать.
from functools import wraps
def disable_for_loaddata(signal_handler):
"""
Decorator that turns off signal handlers when loading fixture data.
"""
@wraps(signal_handler)
def wrapper(*args, **kwargs):
if kwargs.get('raw'):
return
signal_handler(*args, **kwargs)
return wrapper
Тогда:
@disable_for_loaddata
def your_fun(**kwargs):
## stuff that won't happen if the signal is initiated by loaddata process
В документах ключевое слово raw: True, если модель сохраняется точно в том виде, в каком она была представлена (т.е. при загрузке прибора).