HttpResponseRedirect django + facebook

votos
0

Tengo un formulario con 2 botones. Dependiendo del botón, haga clic en usuario se lleva a diferentes url. la función de vista es:

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

para la plantilla:

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

así que mi problema es que la página no está redireccionando a la url. Si hago HttpResponseRedirect ('../') me da la página correcta pero la URL no cambia.

página actual = friendlist / status / así después de enviar el formulario mi url debería ser frinedlist / list / así debería funcionar HttpResponseRedirect ('../ list /') pero la URL no se está cambiando. ¿Alguna idea? ¿Cómo puedo solucionar esto? Gracias

Publicado el 25/05/2009 a las 08:53
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
0

¿Por qué necesitas usar las URL relativas? ¿No puedes usar las URL absolutas?

Respondida el 25/05/2009 a las 09:50
fuente por usuario

votos
2

"Así que mi problema es que la página no está redireccionando a la url. Si hago HttpResponseRedirect ('../'), me da la página correcta, pero la URL no cambia".

Por "URL" supongo que quiere decir "La URL que se muestra en el navegador". Ayuda si tu pregunta es muy precisa.

Primero, debes proporcionar una URL absoluta. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Es bastante claro a partir de los estándares (RFC 2616, sección 14.30) que se requiere una URL absoluta. Algunos navegadores pueden tolerar una URL relativa. Algunos no.

En segundo lugar, nunca debe usar URL relativas en ninguna parte de sus programas.

Deberías usar el reverso .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Respondida el 25/05/2009 a las 11:56
fuente por usuario

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