2010-04-05 6 views
2

Cant nous envoyer une variable dictionnaire lors de l'utilisation HttpResponseRedirectHttpResponseRedirect question

 render_to_response('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist})) 

    //How can the dictionary and the request sent back again 

    //sumthing like this 

    return HttpResponseRedirect('edited/display.html',context_instance=RequestContext(request,{'newlist': newlist})) 

Répondre

0

De the documentation:

Le constructeur prend un seul argument - le chemin de redirection. Cela peut être une URL complète (par exemple 'http://www.yahoo.com/search/') ou une URL absolue sans domaine (par exemple '/ search /').

4

réponse redirigée comme nom l'indique, redirige vers une nouvelle URL du navigateur de l'utilisateur, il ne fait pas de sens de passer quoi que ce soit d'autre que le nouvel emplacement dans HttpResponseRedirect

Si vous voulez transmettre des données, de sorte que dans le view de nouvel emplacement URL, vous pouvez vérifier pour ces données, passez-le comme arguments d'URL par exemple

return HttpResponseRedirect('edited/display.html?msg=I was redirected') 
0

Ce que vous cherchez vraiment, je pense est la fonction redirect introduit dans 1.1

Vous pouvez utiliser à la place, pour votre cas,

redirect(view_name,view_parameter) 

Pour cela, il peut être nécessaire pour modifier d'abord votre vue, pour prendre le paramètre new_list, ou passer dessus, le slug ou l'id, il faut.

2

Alors laissez-moi ajouter une autre réponse supplémentaire à ceux qui existent déjà:

my_url = reverse("my_app.views.my_path") + "?action_result=124" 
return HttpResponseRedirect(my_url) 

fonction inverse est: from django.core.urlresolvers import reverse