Django - MultiWidget

Índice
Falando de widgets, devemos saber que estes são uma ponte entre o Código HTML e os campos de Django; Isso tem muito a ver com a maneira como iremos controlar o comportamento do HTML em nossos formulários e, portanto, em nosso aplicativo.
Tal é o controle, que podemos aplicar algumas técnicas de programação nas quais nos permitiremos armazenar e processar dados. de diferentes widgets e dá-los a Django como se fossem dados de uma única fonte.
Divida os dados entre vários Widgets
A operação disso pode ser alcançada usando o método render () do ferramenta, então podemos ter um campo e ao processá-lo dividimos em várias entradas HTML, cada uma contendo uma parte do valor que precisamos armazenar.
ExemploUm exemplo pode ser o campo Data hora, este poderia ser dividido em um campo que captura apenas a data e outro que captura a hora, mas quando está armazenado em Base de dados Devemos juntá-los e assim teremos um campo completo mas na parte do usuário está dividido.
MultiWidget
Conforme o exemplo que indicamos anteriormente, é algo bastante tedioso, pois teríamos que ter o cuidado de escrever muitas rotinas e métodos que nos ajudem na validação, em Django Isso já foi pensado e temos concessionárias que fazem grande parte desse trabalho para nós.
MultiValueFieldDo lado dos campos temos MultiValueField que nos auxilie na validação dos dados, sua limpeza e comparação com cada um dos campos que compõem o composto; A única coisa que temos que fazer aqui é indicar quais são os campos que farão a composição e como devemos compactá-los para que sejam utilizáveis ​​dentro do código Pitão.
Este método é feito para funcionar em conjunto com MultiWidget que se encarregará de traduzir para HTML tudo o que definimos previamente na classe do formulário.
Vejamos abaixo uma imagem de um exemplo de código onde implementamos estes conceitos:

PROLONGAR

Aqui, vemos como primeiro definimos uma classe que herda do MultiWidget, nele indicamos que teremos dois campos Entrada de texto associados e estabelecer um método decompress () que é o que vai separar os valores para apresentação.
Na próxima classe, definimos um pouco mais de elementos, primeiro dizemos que deve ser herdado de MultiValueField então indicamos que ferramenta você deve usar e, claro, vamos dizer-lhe para usar o widget já definido acima.
Então em seu método __init__ Indicamos os tipos de campos que irá ocupar e por fim definimos o método comprimir (), vemos que além de si mesmo, ele também recebe um parâmetro data_list, nisso vamos passar a lista de dados que devem ser combinados e retorná-los como uma tupla, também aproveitamos para validá-los para evitar o recebimento de dados errôneos que podem ameaçar nossa aplicação.
Com isso finalizamos este tutorial vendo como temos uma ferramenta bastante avançada que nos permite customizar um pouco mais nossos formulários em nossa aplicação em simples passos.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave