0
votes

Django Comment faire une redirection conditionnelle après la poste?

J'ai une forme qui affiche certains champs du profil d'utilisateur entre autres. Dans ce formulaire, les champs du profil sont désactivés. Si les détails sont obsolètes, l'utilisateur peut accéder à la vue Modifier le profil et mettre à jour les détails. Pour cela, j'ai inclus un bouton dans le gabarit du formulaire. Après avoir mis à jour le profil, je souhaite que l'utilisateur revenait au formulaire. Cette dernière partie est celle que j'ai des problèmes avec.

Le lien pour éditer le profil à partir du formulaire ressemble à: xxx

Voici comment l'URL a l'air de se tourner de La forme: xxx

Le problème est que, dans la vue de profil édition, je ne sais pas comment mettre en œuvre la redirection conditionnelle: xxx


0 commentaires

3 Réponses :


0
votes

Utilisez ceci:

redirect_to = request.POST.get("next", "profile")
return redirect(redirect_to)


2 commentaires

Les données utilisateur ont-elles changé lorsque vous soumettez le formulaire et que le seul problème est de rediriger? Peut-être que vous envoyez une demande à votre vue.


Oui, le profil d'utilisateur est mis à jour. La redirection est le seul problème



0
votes

J'ai réussi à faire ce travail en modifiant la vue sur: xxx

et dans le modèle, y compris: xxx

à l'intérieur de < code> tag

mais je me demande toujours s'il y a un moyen plus facile de le faire.


4 commentaires

Pourriez-vous s'il vous plaît donner à votre exigence un peu clairement, est-ce que le formulaire est édité et enregistré, vous vouliez rediriger l'utilisateur à la page "Suivant" et chaque fois que vous n'êtes pas soumis de formulaire, vous vouliez rediriger l'utilisateur à la valeur par défaut page. Est-ce correct?


@Pradeep L'utilisateur commence à remplir le formulaire et réalisé que les coordonnées figurant dans le formulaire sont obsolètes, il clique sur une touche dans le formulaire qui prend l'utilisateur à la page Modifier le profil. L'utilisateur termine l'édition du profil et appuyez sur Soumettre pour enregistrer les modifications du profil. Si l'utilisateur est arrivé à la page Modifier le profil de la forme, les pages redirigent l'utilisateur sur le formulaire après avoir enregistré les modifications. Sinon, le formulaire montre le profil avec les nouvelles valeurs.


Vous pouvez utiliser "redirection de retour (demande.meta.get ('http_referer'))" dans vos points de vue.py après avoir enregistré le formulaire pour rediriger l'utilisateur à leur page précédente.


@Pradeep Oui, mais ce n'est pas seulement en retour. Si l'utilisateur est sur la page d'accueil et décide de mettre à jour le profil, une fois la mise à jour, je souhaite que l'utilisateur reste sur la page de profil. Si l'utilisateur est sous la forme et décidez de mettre à jour le profil, il en retourne.



0
votes
 redirect(request.META.get('HTTP_REFERER'))

1 commentaires

Le problème est de savoir comment inclure le redirect_to dans les variables de poste. L'option de retour en arrière n'est également pas suffisante comme expliquée dans l'un des commentaires à ma réponse.