конечных автоматов (dfa)?
Или всё ручками самому?
Сделать не лень, может вдруг есть
https://github.com/viewflow/django-fsm
Обсуждают сегодня