4
respostas

Validação não acontece

Olá fiz o codigo da mesma forma, mas por algum motivo a validação não acontece, o codigo fica aceitando nome com espaço

from django import forms


class LoginForms(forms.Form):
    login_nome = forms.CharField(
        label='Nome de Login',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Login'
            }
        )
    )

    senha = forms.CharField(
        label='Senha',
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Senha'
            }
        )
    )


class CadastroForms (forms.Form):
    cadastro_nome = forms.CharField(
        label='Nome',
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Nome'
            }
        )
    )

    email = forms.EmailField(
        label='Email',
        required=True,
        max_length=100,
        widget=forms.EmailInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Email'
            }
        )
    )

    senha_1 = forms.CharField(
        label='Senha',
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Senha'
            }
        )
    )

    senha_2 = forms.CharField(
        label='Confirme sua senha',
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Confirme sua senha'
            }
        )
    )

    def clean_cadastro_nome(self):
        nome = self.cleaned_data.get("cadastro_nome")

        if nome:
            nome = nome.strip()
            if " " in nome:
                raise forms.ValidationError("Não use espaço no nome de login")
            else:
                return nome
4 respostas

O meu também não fez a validação.

Ricardo, eu descobri o que houve no meu código para a validação não ocorrer. O problema do meu código foi má indentação. Eu havia adicionado o def clean_nome_cadastrado(self): fora da class CadastroForms. O correto é ela estar indentada abaixo do último parênteses, ainda dentro do class CadastroForms, como abaixo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

pior que o meu esta com a indentação correta Imagem mostrando a indentação corretamente

O meu também não valida e o código está identico : (

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software