HttpResponseRedirect django + facebook - PullRequest
0 голосов
/ 25 мая 2009

У меня есть форма с 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 / list / так что это должно работать HttpResponseRedirect ('../ list /'), но URL не меняется. Любая идея? Как я могу это исправить Спасибо

Ответы [ 2 ]

2 голосов
/ 25 мая 2009

"поэтому моя проблема в том, что страница не перенаправляет на URL. Если я сделаю HttpResponseRedirect ('../'), он выдаст мне правильную страницу, но URL не изменится."

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

Сначала вы должны указать абсолютный URL. http://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponseRedirect

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

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

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

from django.core.urlresolvers import reverse

def myview(request):
    theURL= reverse('path.to.viewFunction')
    return HttpResponseRedirect(theURL)
0 голосов
/ 25 мая 2009

Зачем вам нужно использовать относительные URL? Разве вы не можете использовать абсолютные URL-адреса?

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