1

How do I get the current state of a database item using django-fsm. I have tried get_state() but it returns a null value.

Here is my code:

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)

Is there a way of getting the state field using django-fsm library. Also, how do I get the available state transitions using the model methods.

Allan Maina
  • 123
  • 1
  • 6

1 Answers1

2

You can get the value of the stat field by accessing it like a normal field:

ticket.state

If you want to get the display friendly version, FSMField works like any CharField(choices=[]) field using:

ticket.get_state_display()

You can get all of the available transitions by calling:

ticket.get_available_state_transitions()

You didn't define any transitions on your model so this call would not return anything at the moment.

MaestroFJP
  • 366
  • 1
  • 8