Índice
Temos uma grande seleção de tipos de campo quando trabalhamos com os formulários em DjangoPorém, chega um momento em que precisamos de uma validação ou definir um novo comportamento, para isso podemos customizar nossos campos sem problemas usando os métodos de Django.forms.A vantagem de trabalhar com campos personalizados em formulários é que não precisamos nos preocupar com sua compatibilidade com múltiplos back-ends como se devêssemos nos preocupar ao criar um novo tipo de campo no modelo.
Os campos personalizados
UMA campo customizado no formulário nos permite gerar suporte para tipos de entrada de dados que não existem no grande número de opções que nos oferece DjangoGraças a isso, podemos alcançar resultados mais personalizados que ajudam nosso aplicativo a atingir melhor nossos objetivos.
Como criá-los?Para criar um campo personalizado, isso deve herdar da classe Campos incluído em Django.forms, desta forma garantimos o seu correto funcionamento dentro do formulário; Outro aspecto que já mencionamos é que este tipo de campo é mais fácil de implementar, pois não precisamos levar em consideração o trabalho com back-ends diferentes, ou seja, com múltiplos bancos de dados como seria em um modelo, isso porque apenas vamos avaliar os dados do tipo string no formulário quando o usuário insere dados.
Validação
Este talvez seja o aspecto fundamental na geração de novos campos, pois ao definir um tipo de validação podemos estabelecer o tipo de campo, pois a validação é que dará o caráter único a dito campo.
Como incluir uma validação?Para incluir uma validação, devemos recorrer a método clean (), este método aceita o objeto da classe e o valor em avaliação, então de acordo com os padrões que criamos este método é capaz de discernir entre os dados inseridos e se eles atendem ou não à nossa validação, caso contrário, será capaz de gerar uma exceção e enviar uma mensagem de erro que definimos.
Vamos ver na imagem a seguir um código onde dois novos tipos de campos personalizados são gerados:
Aqui vemos como aplicamos tudo o que falamos, primeiro fazemos o importar do Campos Dentro de Django.forms uma vez que é a classe que precisamos usar, então criamos uma classe que herdará, neste caso, de fields.DecimalField, isso nos permite entender que nosso novo campo será numérico.
Em seguida, definimos um erro chamado fora de alcanceIsso nos ajuda quando levantamos uma exceção na hora de validar os dados para podermos mostrar uma mensagem que orienta o usuário; isso nos dá a oportunidade de ter diferentes tipos de mensagens para diferentes erros.
ImportanteFinalmente, substituímos o método limpo dentro de cada nova classe para que possamos elaborar a nova validação, primeiro usamos o método Super limpo () com isso chama o método clean () da classe fields.DecimalFields com isso podemos validar que se trata de um tipo numérico correto antes de avaliar nossa própria validação, o que nos poupa de ter que localizar uma validação do tipo de dados inseridos, aqui a vantagem de herdar é notada.
Finalmente validamos com nossas condições e se não forem atendidas levantamos o erro; então já criamos um campo personalizado.
Com isso finalizamos o tutorial com uma ferramenta adicional que nos permite fazer aplicações mais próximas de nossas necessidades.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo