HttpResponseRedirect Django + facebook

głosy
0

Mam formularz z 2 przyciskami. w zależności od użytkownika, kliknij przycisk zostanie podjęta do innego adresu URL. Widok jest funkcja:

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

na szablonie:

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

więc mój problem jest strona nie jest przekierowanie do adresu URL. Jeśli zrobię HttpResponseRedirect ( „../”) daje mi właściwą stronę, ale URL nie zmienia się.

Current page = „friendlist / status / więc po złożeniu tworzą mój adres URL powinien być frinedlist / lista / tak to powinno działać HttpResponseRedirect («../ / Lista»), ale nie jest uzyskiwanie url zmianie. Każdy pomysł? Jak mogę rozwiązać ten Thanks

Utwórz 25/05/2009 o 08:53
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Dlaczego trzeba używać względnych adresów URL? Można nie stosować bezwzględne adresy URL?

Odpowiedział 25/05/2009 o 09:50
źródło użytkownik

głosy
2

„Więc mój problem jest strona nie jest przekierowanie do adresu URL. Jeśli zrobię HttpResponseRedirect («../») daje mi właściwą stronę, ale URL nie zmienia.”

Przez „URL” Zgaduję, masz na myśli „Adres URL pokazany w przeglądarce”. To pomaga, jeśli pytanie jest bardzo precyzyjne.

Po pierwsze, należy podać bezwzględną URL. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Jest to dość oczywiste, ze standardami (RFC 2616, rozdział 14.30), które wymagane jest absolutny URL. Niektóre przeglądarki mogą tolerować względny adres URL. Niektóre nie.

Po drugie, nigdy nie powinno się używać w dowolnym miejscu względny adres URL w swoich programach.

Należy używać odwrotnie .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Odpowiedział 25/05/2009 o 11:56
źródło użytkownik

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