1
resposta

Validação de Nome com espaço ao cadastrar não funciona

Validação de Nome com espaço ao cadastrar não funciona. Segue link github https://github.com/ArthurCoutinho15/django_space. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Bom dia, Arthur! Tudo bem?

Analisando o código que você disponibilizou não identifiquei nenhum problema no trecho de código que você implementa o método clean_nome_cadastro e nem no arquivo forms.py como todo.

Mas, analisando o arquivo views.py, mais especificamente no método cadastro em que você usa aquela validação do formulário, notei que apresenta um simples problema de indentação que acaba fazendo com que a verificação do campo de nome não seja feita corretamente. Segue o código ajustado:

def cadastro(request):
    form = CadastroForms()

    if request.method == 'POST':
        form = CadastroForms(request.POST)

        if form.is_valid():
            if form['senha_1'].value() != form['senha_2'].value():
                messages.error(request, 'Senhas não são iguais')
                return redirect('cadastro')
            
            nome = form['nome_cadastro'].value()
            email = form['email'].value()
            senha = form['senha_1'].value()

            if User.objects.filter(username=nome).exists():
                messages.error(request, 'Usuário já existente')
                return redirect('cadastro')

            usuario = User.objects.create_user(
                username=nome,
                email=email,
                password=senha
            )

            usuario.save()
            messages.success(request, 'Cadastro efetuado com sucesso!')
            return redirect('login')

    return render(request, 'usuarios/cadastro.html', {'form': form})

O que ajustei foi que, tudo abaixo da condição form.is_valid() deve estar indentado dentro dessa condição.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.