Задать вопрос
@9DirtyDaniel9

Как реализовать авторизацию на Django?

Добре, товарищи программисты и ищущие решение проблемы человеки.
Я реализовал регистрацию в джанго и авторизацию, но беда в том, что я не могу проверить вошел ли я.
В джанго я совсем зеленый, сильно палками не кидайтесь.
views.py
from django.http import HttpResponse
from django.contrib.auth import authenticate, login
from .forms import LoginForm
from django.shortcuts import render, redirect

def user_login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = authenticate(username=cd['username'], password=cd['password'])
            if user is not None:
                if user.is_active:
                    login(request, user)
                    return redirect('/')
                else:
                    return HttpResponse('Disabled account')
            else:
                return HttpResponse('Invalid login')
    else:
        form = LoginForm()
    return render(request, 'login/account_login.html', {'form': form})

forms.py
from django import forms


class LoginForm(forms.Form):
    username = forms.CharField()
    password = forms.CharField(widget=forms.PasswordInput)

html
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h1>Вход на сайт</h1>
    {% if error %}
        <div style="color:red;">{{ error }}</div>
    {% endif %}
     <form method="post" action="" class="login">
         {% csrf_token %}
    <p>
      <label for="login">Логин:</label>
      <input type="text" name="login" id="login" >
    </p>

    <p>
      <label for="password">Пароль:</label>
      <input type="password" name="password" id="password" >
    </p>

    <p class="login-submit">
      <button type="submit" class="login-button">Войти</button>
    </p>

  </form>
</body>
</html>

Возможно в коде есть ошибки, но я очень долго ломаю голову над этим проектом, любая критика приветствуется.
Upd: При вводе пароля и логина происходит обновление страницы и на этом всё.
  • Вопрос задан
  • 1358 просмотров
Подписаться 2 Простой 2 комментария
Решения вопроса 1
@9DirtyDaniel9 Автор вопроса
Вопрос исчерпан.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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