HttpResponseRedirect Django + facebook

voturi
0

Am o formă cu 2 butoane. în funcție de utilizator faceți clic pe butonul este luată pentru a URL-uri diferite. vedere din funcție este:

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

pentru șablon:

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

astfel încât pagina problema mea este nu este redirecționat la adresa URL. Dacă am face HttpResponseRedirect ( „../“) mi dă pagina corectă, dar URL-ul nu se schimbă.

Pagina curentă = „friendlist / starea / astfel încât, după trimiterea formularului de URL-ul meu ar trebui să fie frinedlist / lista / astfel încât aceasta ar trebui să funcționeze HttpResponseRedirect («../ lista /»), dar URL-ul nu este obtinerea schimbat. Orice idee? Cum pot rezolva această problemă Multumesc

Întrebat 25/05/2009 la 08:53
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

De ce trebuie să utilizați adrese URL relative? Nu poți folosi adrese URL absolute?

Publicat 25/05/2009 la 09:50
sursa de către utilizator

voturi
2

„Astfel încât problema mea este pagina nu este redirecționat către adresa URL. Dacă am face HttpResponseRedirect («../») mi dă pagina corectă, dar URL-ul nu se schimbă.“

Prin „URL-ul“ Bănuiesc că vrei să spui „URL-ul afișat în browser-ul“. Aceasta ajută în cazul în care întrebarea dumneavoastră este foarte precisă.

În primul rând, trebuie să furnizați o adresă URL absolută. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Este destul de clar din standardele (RFC 2616, secțiunea 14.30), care este necesară o adresă URL absolută. Unele browsere pot tolera o adresă URL relativă. Unii nu fac.

În al doilea rând, nu trebuie să utilizați în orice adresă URL relativă în programele dumneavoastră.

Ar trebui să fie utilizați invers .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Publicat 25/05/2009 la 11:56
sursa de către utilizator

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