Подтвердить что ты не робот

Django.contrib.auth.logout в Django

Я хотел бы использовать функцию выхода из Django, но не знаю, как правильно ее использовать. Я ссылаюсь на эту аутентификацию пользователя Django: https://docs.djangoproject.com/en/dev/topics/auth/ и он читает

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

Сложная часть для меня - это # ​​Перенаправление на страницу успеха. Как перенаправить его на другую страницу. Должен ли я использовать HttpResponseRedirect или добавлять дополнительные аргументы для выхода (запроса). Я не уверен, что делать. Нужно руководствоваться.

4b9b3361

Ответ 1

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

def logout(request, next_page=None,
           template_name='registration/logged_out.html',
           redirect_field_name=REDIRECT_FIELD_NAME,
           current_app=None, extra_context=None):
    """
    Logs out the user and displays 'You are logged out' message.
    """
    auth_logout(request)
    redirect_to = request.REQUEST.get(redirect_field_name, '')
    if redirect_to:
        netloc = urlparse.urlparse(redirect_to)[1]
        # Security check -- don't allow redirection to a different host.
        if not (netloc and netloc != request.get_host()):
            return HttpResponseRedirect(redirect_to)
    #etc...

Ответ 3

Django имеет метод быстрого вызова под названием redirect. Вы можете использовать это для перенаправления следующим образом:

from django.contrib.auth import logout
from django.shortcuts import redirect

def logout_view(request):
    logout(request)
    return redirect('home')

Где home - это имя шаблона url, определенного вами в urls.py следующим образом:

urlpatterns = patterns('',
    url(r'^$', 'blah.views.index', name='home'))
)

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

PS: код, отправленный @Hedde, из модуля django.contrib.auth.views, logout. Если это то, что вы хотите использовать, вы можете импортировать его следующим образом:

from django.contrib.auth.views import logout

Ответ 4

def logout(request):<br>
    # Log out the user.<br>
    logout(request)<br>
    # Return to homepage.<br>
    return HttpResponseRedirect(reverse('registeration:index'))