Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

451
Visualizações
AttributeError: 'NoneType' object has no attribute 'lower'; password validation

When registering a User, the desired user password is checked against a list of disallowed passwords. Yet when the password is passed to a validator method, the following error is raised:

AttributeError: 'NoneType' object has no attribute 'lower'

Why is the validate() method being invoked as is if password is None when in fact it is truthy?


from django.contrib.auth.models import User
from django.contrib.auth.password_validation import (
    validate_password, CommonPasswordValidator, NumericPasswordValidator
)

from rest_framework import serializers


class LoginSerializer(UsernameSerializer):

    password = serializers.RegexField(
        r"[0-9A-Za-z]+", min_length=5, max_length=8
    )

    def validate(self, data):
        username = data['username']
        password = data['password']
        try:
            validate_password(password, password_validators=[
                CommonPasswordValidator, NumericPasswordValidator
            ])
        except serializers.ValidationError:
            if username == password:
                pass
            raise serializers.ValidationError("Invalid password")
        else:
            return data

    class Meta:
        fields = ['username', 'password']
        model = User
-> for validator in password_validators:
(Pdb) n
> \auth\password_validation.py(46)validate_password()
-> try:
(Pdb) n
> \auth\password_validation.py(47)validate_password()
-> validator.validate(password, user)
(Pdb) password
'Bingo'
(Pdb) user
(Pdb) password
'Bingo'
(Pdb) s
--Call--
> \auth\password_validation.py(180)validate()
-> def validate(self, password, user=None):
(Pdb) password
(Pdb) n
> \django\contrib\auth\password_validation.py(181)validate()
-> if password.lower().strip() in self.passwords:
(Pdb) n
AttributeError: 'NoneType' object has no attribute 'lower'
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

if password and ...:

This checks if it has a value and if the value has the other conditions met

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda