HttpResponseRedirect Django + facebook

hlasů
0

Mám formulář s 2 tlačítky. V závislosti na uživatele Klikněte na tlačítko se užívá k různým url. pohled funkce je:

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

pro šablonu:

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

takže stránky můj problém je, není přesměrování na url. Když udělám HttpResponseRedirect ( ‚../‘), to mi dává správnou stranu, ale url se nemění.

Současná page = „friendlist / status / takže po podání tvoří moji adresu URL by měl být frinedlist / list /, takže by to mělo fungovat HttpResponseRedirect (‚../ / Seznam‘), ale url se nedostanou ke změně. Jakýkoliv idea? Jak mohu opravit tento Díky

Položena 25/05/2009 v 08:53
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Proč je nutné použít relativní adresy URL? Nelze použít absolutní adresy URL?

Odpovězeno 25/05/2009 v 09:50
zdroj uživatelem

hlasů
2

„Takže můj problém je stránka není přesměrování na adresu URL. Pokud udělám HttpResponseRedirect (‚../‘), to mi dává správnou stranu, ale url se nemění.“

Pod pojmem „URL“ Hádám, že máte na mysli „Adresa URL zobrazená v prohlížeči“. To pomáhá, když vaše otázka je velmi přesný.

Za prvé, je nutné zadat absolutní adresu URL. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Je to od normy (RFC 2616, kapitola 14.30), která je vyžadována absolutní URL zcela jasné. Některé prohlížeče mohou tolerovat relativní adresu URL. Někteří ne.

Za druhé, měli byste nikdy použít kdekoliv relativní URL se ve svých programech.

Ty by měly být pomocí vzad .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Odpovězeno 25/05/2009 v 11:56
zdroj uživatelem

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