如何从终端窗口快速更改/插入djnago有限状态机

问题描述

我下面有一个a.py djnago有限状态机程序:

from django.db import models
from django_fsm import transition,FSMIntegerField
from django_fsm import FSMField,transition
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")
import django
django.setup()

from django.core.management import call_command
class Order(models.Model):
     STATUS_GO = 0
     STATUS_COME =1
     STATUS_CHOICES = (
      (STATUS_GO,'GO'),(STATUS_COME,'come')
       )
product = models.CharField(max_length=200)
status = FSMIntegerField(choices=STATUS_CHOICES,default=STATUS_GO,protected=True)


   @transition(field=status,source=. 
  [STATUS_GO],target=STATUS_COME)
   def walk(self):
       print("Target moved")

我将在程序上方运行: 按F5。

  >>> State= order()

  >>> State.walk # input

   >>> Target moved # output

我希望有机会理解,djnago / python是否提供了从终端窗口中插入状态(STATUS_HOLD,STATUS_JUMP)的机会,除了已经可用。

以便这些新状态在程序中定位。任何可能性。谢谢。

解决方法

之前:

  @transition(field=status,source=[STATUS_GO],target=STATUS_COME)

现在:

 in=input("source")
 out =input("Target)
 @transition(field=status,source=in,target=out)

类似地,对于Status_choice,从用户那里获取输入。

这帮助我获得了动态输入