diff --git a/django_fsm/signals.py b/django_fsm/signals.py index 6136d95..60a8e02 100644 --- a/django_fsm/signals.py +++ b/django_fsm/signals.py @@ -1,6 +1,6 @@ from __future__ import annotations -from django.dispatch import Signal +from django.db.models.signals import ModelSignal -pre_transition = Signal() -post_transition = Signal() +pre_transition = ModelSignal() +post_transition = ModelSignal() diff --git a/tests/testapp/tests/test_basic_transitions.py b/tests/testapp/tests/test_basic_transitions.py index 96deabf..fc985c1 100644 --- a/tests/testapp/tests/test_basic_transitions.py +++ b/tests/testapp/tests/test_basic_transitions.py @@ -152,6 +152,15 @@ def test_signals_not_called_on_invalid_transition(self): assert not self.post_transition_called +class LazySenderTests(StateSignalsTests): + def setUp(self): + self.model = SimpleBlogPost() + self.pre_transition_called = False + self.post_transition_called = False + pre_transition.connect(self.on_pre_transition, sender="testapp.SimpleBlogPost") + post_transition.connect(self.on_post_transition, sender="testapp.SimpleBlogPost") + + class TestFieldTransitionsInspect(TestCase): def setUp(self): self.model = SimpleBlogPost()