Ich bin kürzlich auf die Viewflow-Bibliothek für Django gestoßen, die ich als sehr leistungsfähiges Werkzeug für die Erstellung komplexer Workflows erachte.Django-ViewFlow: Hinzufügen von CRUD-Ansichten zum Fluss
Meine App ist ein einfaches Ticketing-System, bei dem der Workflow durch Erstellen eines Tickets gestartet wird. Anschließend sollte ein Benutzer in der Lage sein, mit dem Ticket über eine oder mehrere CRUD-Seiten null oder mehr WorkLogs zu erstellen, ähnlich dem Standard Django Admin Änderungsliste/Detail.
Wie sollte die Vorlage für die Listenansicht aussehen? Ich möchte die Benutzeroberfläche in das Frontend der Bibliothek integriert haben.
Die Strömung deutlich die folgenden Ansichten verwendet:
1) Create für Ticket
2a) Listview of WorkLog ES, Template-Kontrollen 'zurück' hat, 'Hinzufügen' (geht 2b) zu dem Schritt ‚done '(geht zu Schritt 3).
2b) für Create WorkLog
3) Ende
Code:
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__'
fließt. 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()