Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação de formulário

Cria uma apricação para cadastrar os membros de um time de futebol, uma maneira de treinar com o Framework, porém na hora de validar o formulário ele deixa passar números iguais, segue o código:

    def valida_nome(self, nome):
        validade = True
        nomes = []
        perfis = Perfil.objects.all()
        for perfil in perfis:
            nomes.append(perfil.nome)
        if nome in nomes:
            validade = False
            self.adiciona_erro('O nome já está cadastrado') 
        return validade    

    def valida_numero(self, numero):
        validade = True
        numeros = []
        perfis = Perfil.objects.all()
        for perfil in perfis:
            numeros.append(perfil.n_camisa) 
        if numero in numeros:
            validade = False
            self.adiciona_erro('O número já está cadastrado') 
        return validade


    def is_valid(self):
        valid = True
        if not super(Perfilform, self).is_valid():
            self.adiciona_erro('Por favor, verifique os dados imformados (principalmente o número)')
            valid = False

        return valid

E o código dentro da função de view:

def registrar(request):
    if request.method == 'GET':
        form =Perfilform()
        return render(request, 'registrar.html', {'form': form})
    elif request.method == 'POST':
        form = Perfilform(request.POST)
        dados = form.data
        if form.is_valid():
            if Perfilform.valida_nome(form, dados['nome']) and Perfilform.valida_numero(form, dados['n_camisa']):
                perfil = Perfil(nome = dados['nome'], nome_camisa= dados['nome_camisa'],
                                 n_camisa=dados['n_camisa'], n_telefone=dados['n_telefone'])
                perfil.save()
        return render(request, 'registrar.html', {'form': form})

Quando tento cadastrar um nome já exstente ele aponta que ele já exste e pede para que eu mude, já em relação ao número não ocorre o mesmo, pode ter alguma relação com o fato de um ser um CharField e o outro IntegerField?

Gostaria de uma maneira de reolver meu problema, desde já agradeço pela ajuda

1 resposta
solução!

Gabriel, tudo bem ?

Cara acho que o pessoal não conseguiu te ajudar nessa, se você achar melhor cria um novo tópico com qual assunto é, isso pode ajudar também a obter um feedback melhor.