Django: Перенаправление вошло в систему пользователи от страницы входа в систему

Я хочу создать свой сайт так, чтобы, если пользователь совершает нападки /login страница и они уже зарегистрированы, она перенаправит их к домашней странице. Если они не будут зарегистрированы затем, то это будет обычно отображаться. Как я могу сделать это, так как код для входа встроен в Django?

62
задан fifi finance 13 December 2016 в 22:39
поделиться

2 ответа

Я предполагаю, что в настоящее время вы используете встроенное представление входа в систему с

(r'^accounts/login/$', 'django.contrib.auth.views.login'),

или чем-то подобным в ваших URL-адресах.

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

что-то вроде:

from django.contrib.auth.views import login

def custom_login(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect(...)
    else:
        return login(request)

и, конечно, измените свои URL соответственно:

(r'^accounts/login/$', custom_login),
76
ответ дан 24 November 2019 в 16:35
поделиться

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

Сохраните URL как есть. И добавьте что-то вроде:

(r'^$', 'my_project.my_app.views.homepage'),
-6
ответ дан 24 November 2019 в 16:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: