Использование django -fsm для определения состояния объекта - PullRequest
1 голос
/ 05 мая 2020

Как мне получить текущее состояние элемента базы данных с помощью django -fsm. Я пробовал get_state(), но он возвращает нулевое значение.

Вот мой код:

from django.db import models
from django_fsm import FSMField, transition

STATES = ("Open", "In Progress", "Re Opened", "Done", "Closed")
STATES = list(zip(STATES, STATES))

class Ticket(models.Model):
    title = models.CharField(max_length=40)
    state = FSMField(default=STATES[0], choices=STATES)

Есть ли способ получить поле состояния с помощью библиотеки django -fsm. Кроме того, как получить доступные переходы между состояниями с помощью методов модели.

1 Ответ

1 голос
/ 25 мая 2020

Вы можете получить значение поля статистики, открыв его как обычное поле:

ticket.state

Если вы хотите получить версию, удобную для отображения, FSMField работает как любое поле CharField(choices=[]), используя :

ticket.get_state_display()

Вы можете получить все доступные переходы, позвонив:

ticket.get_available_state_transitions()

Вы не определили никаких переходов в своей модели, поэтому этот вызов в данный момент ничего не вернет. .

...