В моем шаблоне, login.html
, у меня есть:user.is_authenticated всегда возвращает значение False для неактивных пользователей на шаблоне
{% if form.errors %}
{% if user.is_authenticated %}
<div class="alert alert-warning"><center>Your account doesn't have access to this utility.</center></div>
{% else %}
<div class="alert alert-warning"><center>Incorrect username or password!</center></div>
{% endif %}
{% endif %}
То, что я пытаюсь сделать, если после отправки формы, пользователь неактивен, то показано другое сообщение об ошибке, и если пользователь просто не аутентифицирован, отобразите неверное сообщение об ошибке пароля пользователя. Это не работает. Он всегда отображает «Неверное имя пользователя или пароль!». в обоих случаях. Однако внутри представления user.is_authenticated возвращает True
даже для неактивных пользователей.
Есть ли у меня какие-либо другие возможности сделать это? Я также попытался
{% if 'inactive' in form.errors %}
Но это не работает слишком, хотя, когда я пытаюсь напечатать form.errors
, он показывает текст «Этот аккаунт неактивен» для неактивных пользователей.
EDIT: Для зрения, я просто используя вид входа Джанго внутри зрения пользовательского входа
views.py:
from django.contrib.auth.views import login, logout
from django.shortcuts import render, redirect
def custom_login(request, **kwargs):
if request.user.is_authenticated():
return redirect('/homepage/')
else:
return login(request, **kwargs)
Можете ли вы показать соответствующую часть своего вида? –
@MosesKoledoye Я просто использую вид входа в систему django по умолчанию, обновленный вопрос – MohitC