Создание учетной записи и аутентификация с помощью Django

Я натыкаюсь на стену с этим кодом. Я могу создать пользователя и сохранить данные. Я могу видеть пользователя в панели администратора django. Когда я пытаюсь войти в систему под этим пользователем, я получаю сообщение об ошибке. Я пробовал сменить пароль в панели администратора django. Это тоже не сработало. Вот мой код. login.html

forms.py

models.py

views.py

class CustomLoginView(LoginView):
    form_class = LoginForm
    template_name = 'users/login.html'

    def form_valid(self, form):
        remember_me = form.cleaned_data.get('remember_me')
        if not remember_me:
            self.request.session.set_expiry(0)
            self.request.session.modified = True
        return super(CustomLoginView, self).form_valid(form)
def login_view(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = authenticate(request, username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    return redirect('home')
                else:
                    form.add_error(None, "This account is inactive.")
            else:
                if not get_user_model().objects.filter(username=username).exists():
                    form.add_error(None, "Invalid username or password")
                else:
                    user_obj = get_user_model().objects.get(username=username)
                    if check_password(password, user_obj.password):
                        form.add_error(None, "This account is inactive.")
                    else:
                        form.add_error(None, "Invalid username or password")
        else:
            form.add_error(None, "Form validation failed.")
    else:
        form = LoginForm()
    return render(request, 'users/login.html', {'form': form})

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users.apps.UsersConfig',
    'social_django',
    'django.contrib.postgres',

AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',

Если бы кто-нибудь мог помочь найти то, чего мне не хватает, я был бы очень признателен Я использую Postgresql, если это имеет значение.

Это журнал ошибок, который я пытался реализовать, чтобы найти свою проблему, но он мне ничего не говорит

(0.002) SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > '2025-03-07T01:50:50.049020+00:00'::timestamptz AND "django_session"."session_key" = 'kbfks1dttfovy17uf8q850as10stpzxq') LIMIT 21; args=(datetime.datetime(2025, 3, 7, 1, 50, 50, 49020, tzinfo=datetime.timezone.utc), 'kbfks1dttfovy17uf8q850as10stpzxq'); alias=default (0.002) SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > '2025-03-07T01:50:50.049020+00:00'::timestamptz AND "django_session"."session_key" = 'kbfks1dttfovy17uf8q850as10stpzxq') LIMIT 21; args=(datetime.datetime(2025, 3, 7, 1, 50, 50, 49020, tzinfo=datetime.timezone.utc), 'kbfks1dttfovy17uf8q850as10stpzxq'); alias=default (0.000) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 6 LIMIT 21; args=(6,); alias=default (0.000) SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = 6 LIMIT 21; args=(6,); alias=default "POST /login/ HTTP/1.1" 200 6474 "POST /login/ HTTP/1.1" 200 6474

Значение AUTH_USER_MODEL было закомментировано в settings.py

Вернуться на верх