HttpResponseRedirect django + facebook

voix
0

J'ai une forme avec 2 boutons. en fonction du bouton clic utilisateur accède à différentes URL. fonction de vue est le suivant:

friend_id = request.POST.get('selected_friend_id_list')

history = request.POST.get('statushistory')
if history:
    print dfgdfgdf
    return HttpResponseRedirect('../status/')

else:
    return direct_to_template(request, 'friends_list.fbml',
                          extra_context={'fbuser': user,
                                         'user_lastname':user_lastname,
                                         'activemaintab':activemaintab,
                                         'friends':friends,
                                         'friend_list':friend_list}) 

pour le modèle:

<input type=submit  value=Calendar View name=calendarview/>
<input type=submit  value=Status History name=statushistory/>
</form 

donc mon problème est la page ne réoriente à l'URL. Si je fais HttpResponseRedirect ( « ../ ») il me donne la bonne page, mais url ne change pas.

page courante = « friendlist / état / si après avoir soumis mon formulaire URL doit être frinedlist / liste / ce qui devrait travailler HttpResponseRedirect ( « ../ liste / »), mais url ne se changer. Une idée? Comment puis-je résoudre ce problème Merci

Créé 25/05/2009 à 08:53
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
0

Pourquoi avez-vous besoin d'utiliser urls par rapport? Pouvez-vous pas utiliser urls absolue?

Créé 25/05/2009 à 09:50
source utilisateur

voix
2

« Donc, mon problème est la page ne réoriente à l'URL. Si je fais HttpResponseRedirect ( « ../ ») il me donne la bonne page, mais url ne change pas. »

Par « URL » Je devine que vous dire « L'URL affichée dans le navigateur ». Il aide si votre question est très précise.

Tout d' abord, vous devez fournir une URL absolue. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Il est tout à fait clair des normes (RFC 2616, section 14.30) qu'une URL absolue est requise. Certains navigateurs peuvent tolérer une URL relative. Certains ne le font pas.

Deuxièmement, vous ne devez jamais utiliser de nulle part de URL relative dans vos programmes.

Vous devez utiliser inverse .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Créé 25/05/2009 à 11:56
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more