Система аутентификации Django

Я использую встроенную систему аутентификации django, и в моем шаблоне входа у меня есть этот код:

login.html:

{% block title %}Login{% endblock %}

{% block content %}
<h2>Login</h2>
{% if user.is_authenticated%}
    you are already logged in
  {% else %}
  <form method = "post">
  {% csrf_token %}
  {{ form.as_p }}
    <button type = "submit">Login</button>
  </form>
{% endif %}
{% endblock %}

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
415
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В свой файл `settings.py 'добавьте следующее:

LOGIN_REDIRECT_URL = 'index'

если имя URL-адреса вашего индекса - 'index', иначе укажите правильное имя URL-адреса

Ответ принят как подходящий

Для django> = 1.11 вы можете установить для параметра redirect_authenticated_user значение True в его URL-адресе в url_patterns, чтобы выполнить перенаправление, например:

from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^login/', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'),
]

прочтите документ для получения дополнительной информации.

а также установите LOGIN_REDIRECT_URL в вашем файле настроек на свой URL-адрес индекса или его имя:

LOGIN_REDIRECT_URL = '/index/'

У меня есть эта ошибка: модуль django.contrib.views не имеет атрибута LoginView

NAS 12.08.2018 23:53

вы должны импортировать его из django.contrib.auth.views, а не из django.contrib.views

Ehsan Nouri 13.08.2018 00:06

он говорит: нельзя импортировать имя vews из django.contrib.auth.views

NAS 13.08.2018 00:17

это тот же встроенный класс, который, как вы сказали, вы используете, просто установите для этого параметра значение True.

Ehsan Nouri 13.08.2018 00:39

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

NAS 13.08.2018 00:44

это не вызовет никаких проблем. но рекомендуется поместить шаблоны в глобальный каталог шаблонов в вашем проекте Django.

Ehsan Nouri 13.08.2018 07:34

ваш код работал, но мне пришлось обновить версию django до 2.1, спасибо

NAS 18.08.2018 23:30

Вы можете сделать это в своем файле views.py.

def login(request):
    if request.method = = "get":
        if request.user.is_authenticated:
            return render(// youre code)

, я использую django, встроенный в представления аутентификации, представление входа в систему уже существует

NAS 13.08.2018 00:33

Другие вопросы по теме