web-dev-qa-db-fra.com

django rediriger pour voir

J'ai une vue dans laquelle je veux faire des choses, puis rediriger vers une autre vue avec un message de réussite. La signature de la méthode vers laquelle je veux rediriger est

quizView(request, quizNumber, errorMessage=None, successMessage=None): 

et ma tentative de redirection vers cette vue ressemble à ceci:

return redirect(quizView, quizNumber=quizNumber, errorMessage=None, successMessage="Success!")

J'ai essayé la plupart des combinaisons de paramètres nommés et non nommés et je n'arrive pas à faire ce que je veux. Existe-t-il un moyen de faire fonctionner cela?

De plus, j'ai essayé de renvoyer la deuxième vue avec la première, mais l'URL est toujours là où elle était dans l'ancienne vue au lieu d'apparaître comme si elle avait redirigé.

Merci!

26
user1056805

Vous n'avez pas donné de nom à votre URL, vous devez donc utiliser le chemin complet de la fonction d'affichage. De plus, cette URL ne prend pas les paramètres errorMessage ou successMessage, donc les mettre dans l'appel reverse échouera. Voici ce que vous voulez:

return redirect('quizzes.views.quizView', quizNumber=quizNumber)
35
Daniel Roseman

Pouvez-vous essayer l'exemple 2 donné dans https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect

  • Assurez-vous qu'il fait "l'inverse" sur la vue donnée.
  • Le nom de votre vue doit être entouré de guillemets simples /