Comment faire pour rediriger à la page précédente dans Django après le POST de demande de
Je fais face à un problème que je ne peux pas trouver un solution pour. J'ai un bouton dans la barre de navigation qui est disponible sur toutes les pages et c'est un bouton pour créer un peu de contenu.
Vue que les liens avec le bouton:
def createadv(request):
uw = getuw(request.user.username)
if request.method =='POST':
form = AdverForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return HttpResponseRedirect('/', {'username': request.user.username, 'uw': uw})
args = {}
args.update(csrf(request))
args['username'] = request.user.username
args['form'] = AdverForm()
args['uw'] = uw
return render_to_response('createadv.html', args)
Si vous pouvez le voir maintenant, j'ai toujours rediriger vers la page principale de '/' après la création de contenu, mais je veux revenir à la page que j'ai lancé la création de contenu.
OriginalL'auteur Oleg | 2016-03-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter un
next
champ de votre formulaire, etrequest.path
. Après le traitement de votre formulaire, vous pouvez effectuer une redirection vers la valeur de ce chemin.template.html
views.py
C'est à peu près ce que
django.contrib.auth
fait pour le formulaire de connexion si je me souviens bien.Si vous passer par une page intermédiaire, vous pouvez passer à la prochaine valeur via le querystring:
some_page.html
template.html
OriginalL'auteur Antoine Pinsard
Vous pouvez utiliser le
HTTP_REFERER
valeur:Noter que cela ne fonctionnera pas si le client a désactivé l'envoi de l'information référent (par exemple, à l'aide d'un privé/incognito Fenêtre du navigateur). Dans un tel cas, il sera redirigé vers
/
.OriginalL'auteur Selcuk