2016-03-09 4 views
4

Я думаю, что это должно быть легко, но я не могу понять это. Я пытаюсь написать отказ. Я получаю запрос на получение. Через urls.py я отрисую свое представление об отказе. В этом представлении я сохраняю некоторые параметры для пользователя в базе данных, а затем я хочу перенаправить пользователя на внешний URL. Я пробовал:Как перенаправить внешний URL в Django?

return redirect('http://stackoverflow.com/') 

от Django documentation. Тем не менее, представление optout отображает шаблон обучения вместо возврата перенаправления, хотя параметры сохраняются в базе данных, как и ожидалось. Мой код выглядит следующим образом:

def optout(request): 
    if (('REMOTE_USER' in request.META and request.META['REMOTE_USER'] != "") or 
     (request.session.get('userid', False) and request.session['userid'] != "")): 
     if ('REMOTE_USER' in request.META and request.META['REMOTE_USER'] != ""): 
      userid = request.META['REMOTE_USER'] 
     if (request.session.get('userid', False) and request.session['userid'] != ""): 
      userid = request.session['userid'] 
     user = User.objects.get(username=userid) 
     user.optout = True 
     user.postpone = False 
     user.save() 
     return redirect('http://stackoverflow.com/') 
    context = { 'userid': "" } 
    return render(request, 'games/Training.html', context) 

Любая помощь очень ценится.

+1

Что вы подразумеваете под _it не работает_? В окне «Осмотр» вместо шаблона «Обучение» вместо шаблона «Обращение» отображается шаблон обучения? –

+0

@JohnGordon, да. Ты прав. В представлении «Осмотр» вместо шаблона «Образец» вместо «Возврат» перенаправляется шаблон обучения, хотя параметры сохраняются в базе данных, как и ожидалось. – 1man

+0

Ответ на этот вопрос отвечает [здесь] (http://stackoverflow.com/questions/12326504/django-redirect-to-custom-url) – AramirezMiori

ответ

3

Да, return redirect('http://stackoverflow.com/') - правильный метод.

Если вы выполните следующее, вы можете подтвердить, что это рабочий метод для перенаправления.

def optout(request): 
    return redirect("http://stackoverflow.com/") 

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

+0

Да Gator_Python. Благодарю за ваш ответ. Я проверил базу данных несколько раз, и оба параметра сохранены правильно. – 1man

+0

Итак, что происходит вместо ожидаемого перенаправления? – sytech

+0

. Вид отказа отображает шаблон обучения вместо возврата перенаправления, хотя параметры сохраняются в базе данных, как и ожидалось. – 1man

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