HttpResponseRedirect django + facebook

stimmen
0

Ich habe ein Formular mit 2 Tasten. in Abhängigkeit von der Schaltfläche klicken Benutzer auf verschiedene url genommen. View-Funktion ist:

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}) 

für Vorlage:

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

so mein Problem ist, Seite wird Umleitung nicht auf die URL. Wenn ich HttpResponseRedirect ( ‚../‘) machen es gibt mir die richtige Seite aber URL ändert sich nicht.

Aktuelle Seite = „friend / status / so nach meinem url Vorlage bildet frinedlist sein sollte / Liste / so sollte dies HttpResponseRedirect arbeiten (‚../ Liste /‘), aber url wird nicht geändert zu werden. Jede Idee? Wie kann ich diesen Dank beheben

Veröffentlicht am 25/05/2009 um 08:53
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0

Warum brauchen Sie relative URLs benutzen? Können Sie sich nicht absolut Urls benutzen?

Beantwortet am 25/05/2009 um 09:50
quelle vom benutzer

stimmen
2

„So ist mein Problem Seite ist nicht auf die URL umgeleitet wird. Wenn ich HttpResponseRedirect machen (‚../‘) es gibt mir die richtige Seite, aber url ändert sich nicht.“

Mit dem „URL“ Ich schätze, dass Sie „Die URL im Browser angezeigt“ bedeuten. Es hilft, wenn Ihre Frage ist sehr präzise.

Zunächst müssen Sie eine absolute URL zur Verfügung stellen. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Es ist ganz klar von den Standards (RFC 2616, Abschnitt 14.30), dass eine absolute URL erforderlich ist. Einige Browser kann eine relative URL tolerieren. Manche tun es nicht.

Zweitens sollten Sie nie überall relativ URLs in Ihren Programmen verwenden.

Sie sollten mit seinem Reverse .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Beantwortet am 25/05/2009 um 11:56
quelle vom benutzer

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