Skip to content

Instantly share code, notes, and snippets.

@pilt
Created October 3, 2011 07:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pilt/1258654 to your computer and use it in GitHub Desktop.
Save pilt/1258654 to your computer and use it in GitHub Desktop.
coach_models = [
(health.models.HealthMessage, health.search_indexes.HealthMessageIndex),
(django.contrib.auth.models.User, health.search_indexes.UserIndex),
]
coach_site = haystack.sites.SearchSite()
coach_indexes = {}
def setup_signals(model):
index = coach_site.get_index(model)
@receiver(pre_delete, sender=model)
def _remove_on_delete(sender, instance=None, **kwargs):
index.backend.remove(instance)
coach_logger.debug('removed %r instance', model)
@receiver(post_save, sender=model)
def _update_on_save(sender, instance=None, **kwargs):
index.backend.update(index, [instance])
coach_logger.debug('updated %r instance', model)
coach_logger.info('configured receivers for %r', model)
return _remove_on_delete, _update_on_save
for model, index in coach_models:
try:
haystack.site.unregister(model)
except NotRegistered:
pass
coach_site.register(model, index)
setup_signals(model)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment