signals.py 514 B

123456789101112131415161718192021
  1. from django.dispatch import Signal, receiver
  2. __all__ = (
  3. 'post_sync',
  4. 'pre_sync',
  5. )
  6. # DataSource signals
  7. pre_sync = Signal()
  8. post_sync = Signal()
  9. @receiver(post_sync)
  10. def auto_sync(instance, **kwargs):
  11. """
  12. Automatically synchronize any DataFiles with AutoSyncRecords after synchronizing a DataSource.
  13. """
  14. from .models import AutoSyncRecord
  15. for autosync in AutoSyncRecord.objects.filter(datafile__source=instance).prefetch_related('object'):
  16. autosync.object.sync(save=True)