在Django中自定義工作流可以通過以下步驟實現(xiàn):
MyModel
的模型,并在其中添加一個字段來表示工作流狀態(tài),例如status
字段。from django.db import models
class MyModel(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('review', 'Review'),
('published', 'Published'),
)
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='draft')
django-fsm
庫。from django.db import models
from django_fsm import FSMField, transition
class MyModel(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('review', 'Review'),
('published', 'Published'),
)
status = FSMField(default='draft')
@transition(field=status, source='draft', target='review')
def submit_for_review(self):
pass
@transition(field=status, source='review', target='published')
def publish(self):
pass
添加狀態(tài)轉(zhuǎn)換方法:在模型中添加方法來實現(xiàn)不同狀態(tài)之間的轉(zhuǎn)換。這些方法需要使用裝飾器來指定源狀態(tài)和目標狀態(tài)。
使用狀態(tài)轉(zhuǎn)換:在代碼中使用狀態(tài)轉(zhuǎn)換方法來執(zhí)行相應的狀態(tài)轉(zhuǎn)換操作。例如,可以調(diào)用submit_for_review()
方法將狀態(tài)從“draft”轉(zhuǎn)換為“review”,然后調(diào)用publish()
方法將狀態(tài)從“review”轉(zhuǎn)換為“published”。
參考文檔: