2010-06-30 4 views
1

Я делаю простой класс голосования, где пользователь может проголосовать или проголосовать за ответ. Я не хочу, чтобы эта функция возвращала что-либо, поскольку голосование за каждого пользователя создается, когда он голосует. Проблема в том, что мое перенаправление или пустой возврат дает мне ошибку, например: страница не перенаправляется должным образом из браузера.перенаправление django не работает должным образом

Мой код:

def vote_answer_down(request,id): 
    answer = Answer.objects.get(pk = id) 
    VoteDownAnswer.objects.create(answer = answer, voted_down_by = request.user) 

    return HttpResponseRedirect('.') #or return (without httpresponse),gives the same 

, где я не прав? Спасибо!

+1

Это происходит в каждом браузере? Я помню эту проблему только в IE6, но в других браузерах она работает нормально. – yedpodtrzitko

+0

в Firefox - я только установил его – dana

ответ

1

http://docs.djangoproject.com/en/1.2/ref/request-response/#django.http.HttpResponseRedirect

Конструктор принимает единственный аргумент - путь для перенаправления. Это может быть полный URL-адрес (например, «http://www.yahoo.com/search/») или абсолютный URL-адрес без домена (например, «/ search /»). Обратите внимание, что это возвращает код состояния HTTP 302.

Что заставляет вас думать '.' будет работать?

Обычно используют функцию reverse, чтобы обеспечить абсолютный URL-адрес.

http://docs.djangoproject.com/en/dev/topics/http/urls/#reverse

+0

, он не работает, если я размещаю www.google.com там .. может быть, потому, что я создаю там объект голосования? я просто хочу, чтобы он остался на текущей странице – dana

+2

www.google.com тоже не работал, но попробуйте ввести «http://google.com/"or даже просто»/«для вашей домашней страницы – jturnbull

+1

@dana:" может быть, потому, что я создаю там объект голосования? " Нет. Объектом 'return' является объект' return'. Если он не будет перенаправлен, вы явно делаете что-то совершенно неправильное в Django или mod_wsgi или Apache. Поскольку вы не предоставили много подробностей в своем стеке технологий, нам остается только догадываться. –

Смежные вопросы