Flux de travail des cadres pour Django
J'ai été à la recherche d'un cadre pour simplifier le développement de raisonnablement complexe de flux de travail dans Django applications. Je aimerais être en mesure d'utiliser le cadre pour automatiser les transitions d'état, permissioning, et peut-être quelques extras comme l'enregistrement d'audit et des notifications.
J'ai vu certains anciens de l'information sur le même sujet, mais pas trop dans les 2-3 dernières années. Les principaux choix que j'ai entendu parler de sont GoFlow (pas mis à jour depuis 2/2009) et django-workflow (semble plus actif).
Quelqu'un a utilisé ces paquets? Ils sont matures et/ou compatible avec moderne (1.3) Django? Il existe d'autres options là-bas la peine d'envisager que peut-être le meilleur ou mieux pris en charge?
Vous devez vous connecter pour publier un commentaire.
Permettez-moi de vous donner quelques notes ici que je suis l'auteur de django-fsm et django-viewflow, deux projets qui pourrait être appelé "flux de travail des bibliothèques".
Workflow mot lui-même est un peu surfait. Différents types de bibliothèques et de logiciels peuvent s'appellent eux-mêmes "flux de travail", mais ont différentes fonctionnalités.
Le point commun est qu'un flux de travail relie les étapes de certains processus dans son ensemble.
Classement général
Que je vois, les flux de travaux de la mise en œuvre d'approches peuvent être classées comme suit:
comme les points de vue, des formulaires et des modèles, et de favoriser l'amélioration de la personnalisation par python habituel des constructions comme l'héritage de classe. Un travail dynamique supposons que vous disposez d'interface générique qui peut s'adapter à n'importe quel flux d'exécution des modifications.
De ces, les deux premières pourraient être considérés comme progressive des différences, mais les deux autres sont fondamentaux.
Packages spécifiques
Voici une brève description de ce que nous avons de nos jours dans django, djangopackages et génial django liste des projets en vertu de la section flux de travail:
machine héritage de soutien n'est pas mentionné dans la documentation, mais la classe de définition de l'état rend possible avec aucun ou peu de base de la bibliothèque de modifications.
Aucun de ces django machine d'état des bibliothèques disposent d'un soutien pour des travaux parallèles, ce qui limite leur champ d'application beaucoup. Mais il y a les deux:
django-viewflow - explicite, multi-utilisateur, en parallèle, statique flux de travail, avec le soutien de tâches en parallèle de l'exécution, complexe split et join sémantique. Fournit des aides à intégrer avec django, fonctionnel et classe en fonction des vues et des différentes tâches d'arrière-plan d'exécution des requêtes, et de divers pessimiste et optimiste de verrouillage des stratégies pour prévenir des mises à jour simultanées.
GoFlow, mentionné dans la question, a tendance à être le explicite, multi-utilisateur, en parallèle, dynamique flux de travail, mais il a été abandonné par l'auteur pour un ans.
Je vois la façon de mettre en œuvre des dynamiques de flux de travail de la construction de la fonctionnalité sur le dessus de django-viewflow. Dès qu'il est terminé, si vous fermez la dernière et la plus sophistiquée pour les flux de travail mise en œuvre dans le django monde.
Espoir, si quelqu'un a pu lire jusqu'à présent, comprend maintenant le flux de travail de terme mieux, et peuvent faire le choix conscient pour la bibliothèque de flux de travail pour leur projet.
Oui.
Python.
Vous n'avez pas besoin d'un flux de travail produit pour automatiser les transitions d'état, permissioning, et peut-être quelques extras comme l'enregistrement d'audit et des notifications.
Il ya une raison pourquoi il n'y a pas beaucoup de projets à faire cela.
La État modèle de conception est assez facile à mettre en œuvre.
Les règles d'Autorisation ("permissioning") sont déjà un de première classe
une partie de Django.
L'exploitation forestière est déjà une première partie de Python (et a été
ajouté à Django). L'utilisation de ce pour l'enregistrement d'audit est un audit
table ou un autre enregistreur (ou les deux).
Le message de cadre ("notifications") fait déjà partie de Django.
Quoi de plus avez-vous besoin? Vous l'avez déjà tous.
À l'aide de définitions de classe pour la État modèle de conception, et des décorateurs pour l'autorisation et la journalisation fonctionne si bien que vous n'avez pas besoin de quelque chose au-dessus et au-delà de ce que vous avez déjà.
Lire cette question connexe: Mise en œuvre d'un "moteur de règles" en Python
Une application écrite par un de mes collaborateurs, django-fsm, semble--il est à la fois assez léger et suffisamment plein de fonctionnalités utiles.
C'est drôle parce que j'aurais été d'accord avec S. Lott simplement à l'aide de Python comme c'est pour un moteur de règles. J'ai un point de vue TOTALEMENT différent maintenant de l'avoir fait.
Si vous désirez moteur de règles, il est tout à fait un peu de pièces mobiles. Nous avons construit un Python/Django moteur de règles et vous seriez surpris de ce que doit être construite dans pour obtenir un grand moteur de règles en place et en cours d'exécution. Je vais l'expliquer plus loin, mais d'abord, le site est http://nebrios.com.
D'un moteur de règles devrait au moins avoir:
Donc essayer Nebri, ou les autres, je liste ci-dessous pour voir si elles répondent à vos besoins.
Voici le mode debug
Auto généré forme
Un exemple de règle de workflow:
Alors, non, ce n'est pas simple de construire une des règles de base d'événement, moteur de workflow basé sur Python seul. Nous avons été à elle pendant une année! Je vous conseille d'utiliser des outils comme
Je peux ajouter une bibliothèque qui prend en charge à la volée des modifications sur les composants de flux de travail, contrairement à ses équivalents.
Regarder django-rivière
ActivFlow: un générique, léger et extensible moteur de flux de travail pour le développement agile et de l'automatisation complexe des Processus d'Affaires de l'exploitation.
Vous pouvez avoir un ensemble de flux de travail modélisé en un rien de temps!
Étape 1: Flux De Travail App Enregistrement
Étape 2: L'Activité De La Configuration
Étape 3: Définition De Flux
Étape 4: Règles D'Affaires
- Je migrer django-goflow de django 1.X -python 2.X pour s'adapter à django 2.X - python 3.x, le projet est à django2-goflow