2013-08-15 4 views
0

J'ai une vue dans laquelle j'obtiens des données d'un formulaire et l'utilise pour exécuter un script python dans la vue. Le script python donne une sortie et doit inviter l'utilisateur à aller plus loin et à effectuer d'autres fonctionnalités.Django Views Query

Comment puis-je faire tout cela en une seule vue ??

mon views.py

class DeployWizard(SessionWizardView): 

    template = "deploy_form.html" 
    def done(self, form_list, **kwargs) : 
     form_data = process_form_data(form_list) 

     #process all the data form the form 

     #call the script with some of the the form data as argument 

     # display the output to the user and ask the user to proceed (something like "Yes", "No") and proceed further 

     # again call the python script with some other arguments 

     return rendor_to_response("done.html", {'form_data' : form_data}) 

Répondre

0

Je pense que vous devez utiliser soit Django selon form wizard ou de form preview sur votre cas d'utilisation précis.

Le premier vous aidera si vous avez besoin d'un assistant multi-étapes classique, le dernier si vous avez juste besoin de l'utilisateur pour confirmer son entrée.

+0

J'utilise déjà l'assistant de formulaire. Je ne veux pas confirmer l'entrée de l'utilisateur dans le formulaire plutôt que je veux que l'utilisateur confirme la sortie du script python que j'appelle à l'intérieur de la vue et continue de continuer à appeler le script à nouveau. – sunny

+0

Je suis coincé dans cette situation depuis un moment maintenant. Une réponse serait vraiment utile pour moi. – sunny

+0

Comme vous ne pouvez rien afficher au milieu de la vue et continuer à l'exécuter, vous devrez appeler le script deux fois: la première fois pour afficher la sortie à l'utilisateur et recevoir la confirmation, la deuxième fois pour aller plus loin. De toute évidence, ce n'est pas ce dont vous avez besoin. Ce que vous devez faire est de diviser cette vue en deux parties: faire la première partie de votre script dans une vue, enregistrer ses résultats quelque part, recevoir une confirmation et continuer à traiter les résultats enregistrés dans la deuxième vue. –