Validação de Nome com espaço ao cadastrar não funciona. Segue link github https://github.com/ArthurCoutinho15/django_space.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Validação de Nome com espaço ao cadastrar não funciona. Segue link github https://github.com/ArthurCoutinho15/django_space.
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!