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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-status-signal-0.0.2.tar.gz.
File metadata
- Download URL: django-status-signal-0.0.2.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7af2748c9d2b83179d62e731a295723068d3db4edd23eb05e63e2bde3caee4eb
|
|
| MD5 |
08a51555a489b290ab91ff0a38b3e56c
|
|
| BLAKE2b-256 |
81cd1aa01d0cfb06fcd0c64e76f70a84880ab3546f7f0be0586385f48ab67e11
|
File details
Details for the file django_status_signal-0.0.2-py3-none-any.whl.
File metadata
- Download URL: django_status_signal-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
363f3d5e3e6f3b6fc7685bad5ce7303147a1dc3c2ed5c59acbebeb1dfd8db65a
|
|
| MD5 |
bd8c5deb9b2dd0c2255a41b06f8b8ccc
|
|
| BLAKE2b-256 |
3ad1a11cc0cf5f25d6de5e111ea7c43409682d793729713cd6d1885f72aab01f
|