enhanced django signal which enable you to trigger a signal only if the model instance is in a certain status
Project description
django-status-signal
enhanced django signal which enable you to trigger a signal only if the model instance is in a certain status
Install
pip3 install django-status-signal
Usage
In many scenarios, you may want to trigger a function only when a model's status has been changed to a certain status. But the default django's signal can only use the sender(an model instance) to search the receivers. Here comes the solution.
from django_status_signal import Signal
class Task(models.Model):
status = models.CharField(
choices=(
("start", "start"),
("doing", "doing"),
("success", "success"),
("fail", "fail"),
),
max_length=31,
)
# create a signal and connect it to different status
mysignal = Singal()
mysignal.connect(send_message, Task, dispatch_status="fail")
mysignal.connect(reward, Task, dispatch_status="success")
# call the signal
task = Task.objects.create('start')
mysignal.send(Task, instance=task, task.status) # nothing will happen
task.status = 'success'
task.save()
mysignal.send(Task, instance=task, task.status) # the send_message will be called
TODO
when this project is stable enough, I want to merge the code into django project, so all the post_save
, post_delete
can accept dispatch_status
parameter.
LICENSE
there are many code copied from the django project, so the LICENSE should stay the same as django's LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-status-signal-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7af2748c9d2b83179d62e731a295723068d3db4edd23eb05e63e2bde3caee4eb |
|
MD5 | 08a51555a489b290ab91ff0a38b3e56c |
|
BLAKE2b-256 | 81cd1aa01d0cfb06fcd0c64e76f70a84880ab3546f7f0be0586385f48ab67e11 |
Hashes for django_status_signal-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 363f3d5e3e6f3b6fc7685bad5ce7303147a1dc3c2ed5c59acbebeb1dfd8db65a |
|
MD5 | bd8c5deb9b2dd0c2255a41b06f8b8ccc |
|
BLAKE2b-256 | 3ad1a11cc0cf5f25d6de5e111ea7c43409682d793729713cd6d1885f72aab01f |