Вы можете попробовать это следующим образом:
from django.contrib.auth import authenticate, login
class LoginView(View):
templates = "#/signin.html"
def get(self, *agrs, **kwargs):
return render(self.request, self.templates)
def post(self, *args, **kwargs):
if self.request.method == 'POST':
if self.request.POST.get('username') and self.request.POST.get('password'):
username = self.request.POST.get('username')
password = self.request.POST.get('password')
user = authenticate(request, username=username, password=password) # Its related to Authentication Backend
# In authentication backend, it checks if the user is valid or not
if user:
login(request, user) # user login to system
return HttpResponse('You are logged in')
else:
return HttpResponse('Error password or username')
Для аутентификации django использует модель-бэкэнд .Он внутренне проверяет, действительны ли имя пользователя и пароль, или, если он действителен, возвращает объект User
.Затем вызов функции login позволяет объекту User
войти в систему.После этого вы можете проверить, вошел ли пользователь в систему или нет по request.user.is_authenticated
(используйте его в других представлениях).