django-model-fsm
A package to use transitions with a Django model.
Usage
from django.db import models
from django_model_fsm.dataclasses import StateData, TriggerData, WorkflowData
from django_model_fsm.models import TransitionsMixin
# States
# fmt: off
S_CREATED = StateData(
id="created",
label="Created",
)
S_PUBLISHED = StateData(
id="published",
label="Published",
)
S_ARCHIVED = StateData(
id="archived",
label="Archived",
)
# fmt: on
# Triggers
# fmt: off
T_PUBLISHED_CHALLENGE_MODEL = TriggerData(
id="published_challenge_model",
label="Publish",
order=150,
need_confirmation=False,
)
T_UNPUBLISHED_CHALLENGE_MODEL = TriggerData(
id="unpublished_challenge_model",
label="Unpublish",
order=175,
need_confirmation=True,
)
T_ARCHIVE_CHALLENGE_MODEL = TriggerData(
id="archive_challenge_model",
label="Archive",
order=350,
need_confirmation=True,
)
# fmt: on
challenge_model_workflow = WorkflowData(
initial_state=S_CREATED,
transitions_data=[
# fmt: off
{"trigger": T_PUBLISHED_CHALLENGE_MODEL, "source": S_CREATED, "dest": S_PUBLISHED},
{"trigger": T_UNPUBLISHED_CHALLENGE_MODEL, "source": S_PUBLISHED, "dest": S_CREATED},
{"trigger": T_ARCHIVE_CHALLENGE_MODEL, "source": S_PUBLISHED, "dest": S_ARCHIVED},
# fmt: on
],
)
class MyModel(models.Model, TransitionsMixin):
workflow_data = challenge_model_workflow
workflow_callbacks = []
Release files for django-model-fsm 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_model_fsm-0.2.7.tar.gz | 7.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_model_fsm-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / django_model_fsm-0.2.7.tar.gz
| Download URL | django_model_fsm-0.2.7.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
000be30456e83b8ceed9faa866ceec96078c433ae880932cd9768bfb83772a54
|
|
BLAKE2b-256 checksum How to use checksums |
24f8e4fd19232caddcbc786577c67abd803c15a9ff5b1ee4cf94439322e86dba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|
Release files / django_model_fsm-0.2.7-py3-none-any.whl
| Download URL | django_model_fsm-0.2.7-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4dff32d8fa50a204aeb87aa16c591aece6cf5fe3d3b184ba311b6ec6f221915f
|
|
BLAKE2b-256 checksum How to use checksums |
ebd28e38fa681a35177926c5aba150ca7e0e4aaf2225a1bf26685ad077465ffa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.15
|