Signals¶
SurrealEngine provides Django-style signals for document lifecycle events.
Available Signals¶
pre_save- Before document is savedpost_save- After document is savedpre_delete- Before document is deletedpost_delete- After document is deleted
Using Signals¶
from surrealengine.signals import pre_save, post_save
@pre_save.connect
def before_save(sender, document, **kwargs):
print(f"About to save: {document}")
@post_save.connect
def after_save(sender, document, **kwargs):
print(f"Saved: {document.id}")
Practical Examples¶
Audit Logging:
@post_save.connect
def log_changes(sender, document, **kwargs):
logger.info(f"Document {document.id} was modified")
Cache Invalidation:
@post_delete.connect
def invalidate_cache(sender, document, **kwargs):
cache.delete(f"doc:{document.id}")
Note: Signals require the blinker package:
pip install surrealengine[signals]