Django-fsm, что я упускаю?

Я начинаю задаваться вопросом, в чем смысл django-fsm?

Я работаю над системой управления производством. В качестве примера можно привести переход из состояния INCEPTED (вводятся детали) в состояния IN_PRODUCTION (производится) или RESOURCE_WAIT (некоторые необходимые входные данные еще не доступны). Установление деталей включает в себя запрос значительного количества различных моделей и может включать в себя задавание вопросов пользователю.

Кажется неестественным пытаться поместить кверисеты других моделей в модель, содержащую поле состояния. (Это также вызывает проблему кругового импорта, которую я не знаю, как решить).

Поэтому я написал эту транзакцию в виде представления, что также означает, что я могу отобразить список проверок, которые были сделаны, и их статус успеха/неудачи. Вопрос о том, чтобы убедиться, что переход полностью зафиксирован или не зафиксирован, легко решается с помощью with transaction.atomic(), так что если что-то пойдет не так, ничего не будет зафиксировано в БД.

Поэтому я задаюсь вопросом, что я упускаю. Зачем существует django-fsm? Кажется, что он не вписывается в то, чего я пытаюсь достичь. Слишком низкоуровневый, или ....

Вернуться на верх