Automatically hook your Django-FSM transitions up to Django REST Framework
pip install drf-fsm-transitions
When declaring your viewset, simply mix in the result of get_viewset_transition_action_mixin
from rest_framework import viewsets
from drf_transition_methods.viewset_mixins import get_viewset_transition_action_mixin
from .models import Article
class ArticleViewSet(
get_viewset_transition_action_mixin(Article),
viewsets.ModelViewSet
):
queryset = Article.objects.all()
if Article
had 2 transitions, delete
and publish
, the following API calls would be set up
POST /api/article/1234/delete/
POST /api/article/1234/publish/
By default, the model instance will be saved after the transition has been successfully called. This can be disabled with the save_after_transition
attribute
class ArticleViewSet(
get_viewset_transition_action_mixin(Article),
viewsets.ModelViewSet
):
queryset = Article.objects.all()
save_after_transition = False