0
我最近遇到了Django的Viewflow庫,我似乎是一個非常強大的工具來創建複雜的工作流程。Django-ViewFlow:如何添加CRUD視圖流
我的應用程序是一個簡單的票務系統,當工作流程是通過創建一個Ticket來啓動的,那麼用戶應該能夠通過一個CRUD頁面創建零個或多個與票據關聯的WorkLog,類似於標準的Django admin change_list/detail。
列表視圖的模板應該是什麼樣子?我想將UI集成到圖書館的前端。
流清楚地利用了以下觀點:
1)CreateView的用於訂票
2a)的工作日誌的的ListView中,模板具有控制 '後退', '添加'(轉到步驟2b)中,「完成'(轉到第3步)。
2b)中CreateView的用於工作日誌
3)結束
代碼:
models.py:
class TicketProcess(Process):
title = models.CharField(max_length=100)
category = models.CharField(max_length=150)
description = models.TextField(max_length=150)
planned = models.BooleanField()
worklogs = models.ForeignKey('WorkLog', null=True)
class WorkLog(models.Model):
ref = models.CharField(max_length=32)
description = models.TextField(max_length=150)
views.py:
class WorkLogListView(FlowListMixin, ListView):
model = WorkLog
class WorkLogCreateView(FlowMixin, CreateView):
model = WorkLog
fields = '__all__'
流動。 py:
from .views import WorkLogCreateView
from .models import TicketProcess
@frontend.register
class TicketFlow(Flow):
process_class = TicketProcess
start = (
flow.Start(
CreateProcessView,
fields = ['title', 'category', 'description', 'planned']
).Permission(
auto_create=True
).Next(this.resolution)
)
add_worklog = (
flow.View(
WorkLogListView
).Permission(
auto_create=True
).Next(this.end)
)
end = flow.End()