New in version 0.5.
Signal support is provided by the excellent blinker library and will gracefully fall back if it is not available.
<<<<<<< HEAD The following document signals exist in MongoEngine and are pretty self explanatory: ======= The following document signals exist in MongoEngine and are pretty self-explanatory: >>>>>>> master
- mongoengine.signals.pre_init
- mongoengine.signals.post_init
- mongoengine.signals.pre_save
- mongoengine.signals.post_save
- mongoengine.signals.pre_delete
- mongoengine.signals.post_delete
- mongoengine.signals.pre_bulk_insert
- mongoengine.signals.post_bulk_insert
Example usage:
from mongoengine import *
from mongoengine import signals
class Author(Document):
name = StringField()
def __unicode__(self):
return self.name
@classmethod
def pre_save(cls, sender, document, **kwargs):
logging.debug("Pre Save: %s" % document.name)
@classmethod
def post_save(cls, sender, document, **kwargs):
logging.debug("Post Save: %s" % document.name)
if 'created' in kwargs:
if kwargs['created']:
logging.debug("Created")
else:
logging.debug("Updated")
signals.pre_save.connect(Author.pre_save, sender=Author)
signals.post_save.connect(Author.post_save, sender=Author)