django-observer 0.3rc5
Watch any object/field/relation/generic relation of django and recive signals
Latest Version: 0.4.1
Watch modification of any type of field in Django's model and call registered callback function
This observer can watch
- Any value type of field (CharField, IntegerField ...)
- Any Model type of field (ForeignKey, OneToOneField, GenericForeignKey)
- Any RelatedManager type of field (field automatically created via related_name of ForeignKey)
- Any ManyRelatedManager type of field (ManyToManyField)
- Any GenericRelatedObjectManager type of field (GenericRelation)
- Any Model instance
Install
This library is on PyPI so you can install it with:
pip install django-observer
or from github:
pip install git+https://github.com/lambdalisue/django-observer.git
Usage
>>> from django.db import models
>>> from observer import watch
>>>
>>> class Entry(models.Model):
... status = models.CharFiled('status', max_length=10)
... body = models.CharField('title', max_length=100)
...
... def save(self, *args, **kwargs):
... super(Entry, self).save(*args, **kwargs)
...
... # Watch callback, this is automatically called if `status` is **changed**
... def watch_callback(sender, obj, attr):
... # sender is a watcher instance
... # obj is a instance of target
... # attr is a name of target field
... if obj.status == 'draft':
... obj.title = "draft - %s" % obj.body
... else:
... obj.title = "publish - %s" % obj.body
... # Start watching
... self._watcher = watch(self, 'status', watch_callback)
See observer_test/src/miniblog/blog/tests/test_observer.py for more detail.
Settings
- OBSERVER_DEFAULT_WATCHER
- A class of watcher. Default is 'observer.watcher.complex.ComplexWatcher'
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-observer-0.3rc5.tar.gz (md5) | Source | 2012-01-13 | 19KB | 182 | |
- Author: Alisue
- Home Page: https://github.com/lambdalisue/django-observer
- Download URL: https://github.com/lambdalisue/django-observer/tarball/master
- Keywords: django signals object field relation generic
- License: MIT
- Categories
- Package Index Owner: lambdalisue
- DOAP record: django-observer-0.3rc5.xml
