HttpResponseRedirect Джанго + facebook

голоса
0

У меня есть форма с 2-мя кнопками. в зависимости от пользователя нажатия кнопки берется по другому адресу. вид функция:

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

для шаблона:

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

поэтому моя проблема заключается страница не перенаправляется на URL. Если я HttpResponseRedirect ( «../») это дает мне нужную страницу, но URL не меняется.

текущая страница = «список друзей / статус / поэтому после отправки сформировать мой URL должен быть frinedlist / список / так это должно работать HttpResponseRedirect („../ список /“), но URL не получает изменилось. Любая идея? Как я могу исправить это Спасибо

Задан 25/05/2009 в 08:53
источник пользователем
На других языках...                            


2 ответов

голоса
0

Почему вы должны использовать относительные адреса? Вы можете не использовать абсолютные URL'ы?

Ответил 25/05/2009 в 09:50
источник пользователем

голоса
2

«Поэтому моя проблема страница не перенаправляется на URL-адрес. Если я HttpResponseRedirect („../“) это дает мне нужную страницу, но URL не меняется.»

Под «URL» Я предполагаю, что вы имеете в виду «URL-адрес, показанный в браузере». Это помогает, если ваш вопрос является очень точным.

Во- первых, вы должны предоставить абсолютный URL. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

Это совершенно ясно из стандартов (RFC 2616, раздел 14.30), что требуется абсолютный URL. Некоторые браузеры могут переносить относительный URL. Некоторые не делают.

Во-вторых, вы никогда не должны использовать где-нибудь относительный адрес в предпочитаемых вами программ.

Вы должны использовать реверс .

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
Ответил 25/05/2009 в 11:56
источник пользователем

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