Source code for apps.posts.signals

from contextlib import suppress

from django.db.models.signals import post_save, pre_delete
from django.dispatch import receiver
from elasticsearch import NotFoundError

from apps.posts.documents import PostDocument
from apps.posts.models import Post


[docs] @receiver(post_save, sender=Post) def index_post(sender, instance, **kwargs): PostDocument().update(instance)
[docs] @receiver(pre_delete, sender=Post) def delete_post(sender, instance, **kwargs): with suppress(NotFoundError): PostDocument.get(id=instance.pk).delete(ignore=404)