Я использую встроенную систему аутентификации 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, поэтому я не знаю, как это сделать.






В свой файл `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.auth.views, а не из django.contrib.views
он говорит: нельзя импортировать имя vews из django.contrib.auth.views
это тот же встроенный класс, который, как вы сказали, вы используете, просто установите для этого параметра значение True.
Я должен указать, что у меня есть два приложения: приложение для блога и приложение для учетной записи. Я использую приложение для входа в систему для входа и регистрации, но шаблон входа находится в приложении для блога: блог> шаблоны> регистрация> login.html я не знаю если эта конфигурация может вызвать ошибку
это не вызовет никаких проблем. но рекомендуется поместить шаблоны в глобальный каталог шаблонов в вашем проекте Django.
ваш код работал, но мне пришлось обновить версию django до 2.1, спасибо
Вы можете сделать это в своем файле views.py.
def login(request):
if request.method = = "get":
if request.user.is_authenticated:
return render(// youre code)
, я использую django, встроенный в представления аутентификации, представление входа в систему уже существует
У меня есть эта ошибка: модуль django.contrib.views не имеет атрибута LoginView