Получение определенного значения атрибута из набора запросов django (аутентификация по паролю)

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

Я хочу, чтобы пароль_из_БД был равен "password1234"

views.py

def login(request):
    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data.get("email")
            password_entered = form.cleaned_data.get("password")

            find_person_by_email = Person.objects.filter(email=email)
            password_from_DB = find_person_by_email.values("password")
            print(password_from_DB)

            if password_from_DB  != password_entered :
                print("INCORRECT")
            else:
                print("CORRECT")

    context = {"title": "Login"}
    return render(request, "myApp/login.html", context)

Вывод из print(password_from_DB):

<QuerySet [{'password': 'password1234'}]>
def login(request):
    context = {"title": "Login"}
    if request.method == "POST":
        form = LoginForm(request.POST)
        if form.is_valid():
            email = form.cleaned_data.get("email")
            password_entered = form.cleaned_data.get("password")

            find_persons_by_email = Person.objects.filter(email=email)
            if len(find_persons_by_email) != 0:
                print("User found by email is not unique")
                return render(request, "myApp/login.html", context)

            find_person_by_email = find_persons_by_email.first()
            password_from_DB = find_person_by_email.password

            if password_from_DB != password_entered :
                print("INCORRECT")
            else:
                print("CORRECT")

    return render(request, "myApp/login.html", context)

В качестве альтернативы

            find_persons_by_email = Person.objects.filter(email=email)
            if len(find_persons_by_email) != 0:
                print("User found by email is not unique")
                return render(request, "myApp/login.html", context)

            find_person_by_email = find_persons_by_email.first()

Вы можете просто написать, но это вызовет ошибку Exception, если введенный email не является уникальным, сопоставленным с одним пользователем.

            find_person_by_email = Person.objects.get(email=email)
Вернуться на верх