Índice
A construção de formulários pode ser muito mais fácil usando o classes genéricas do Django no entanto, nem sempre vamos usá-los, pois às vezes precisamos desenvolver a lógica completa de nossa parte.Felizmente dentro Django Podemos também criar a forma como iremos processar os nossos formulários e como gerir a sua lógica, com isso alcançaremos aplicações muito mais personalizadas e mais próximas dos nossos objetivos.
Juntando os dados ao formulário
Sabemos que o formulário é uma forma de tirar dados do usuário, portanto temos dois estados dele, com dados e sem dadosQuando o formulário tem dados, é quando vamos fazer as nossas operações, por outro lado, quando não tem nada, devemos simplesmente ignorá-lo para o processamento dos dados.
ExercícioVamos realizar o seguinte exercício, a partir do console interativo do Django, vamos criar um formulário e com o método is_bound () Vamos validar se tem algum dado associado, desta forma podemos ver um pouco mais como o formulário se comporta dentro do framework, vamos ver os resultados na imagem abaixo:
Como vemos no exemplo, somente quando passamos os valores para o formulário enquanto usamos o método is_bound é que obtemos um Resposta verdadeira.
Validar dados
Como sabemos, se trabalharmos na web, os dados introduzidos pelo utilizador podem ser a forma mais eficaz de ataque à nossa aplicação, isto porque por desconhecimento pode introduzir qualquer tipo de formatos que a nossa aplicação não esteja preparada para aceitar. e, portanto, pode terminar em um erro fatal, para evitar isso, devemos sempre nos certificar de que os dados estão seguros antes de processá-los para isso podemos usar o seguinte:
def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Se os dados são válidos aqui, podemos continuar com nossa lógica de aplicativo, caso contrário : # Caso contrário, apresentamos apenas o objeto sem dados form = MyForm ()
Como vemos no exemplo, fazemos uma instância da classe MyForm e juntamos os dados que vêm no solicitar, pelo método POST e aqueles do tipo ARQUIVOS No caso de trazermos uma imagem ou um arquivo de outro tipo, dependendo do nosso modelo, o que nosso formulário traz deve ser avaliado para isso usamos o método is_valid (), com isso nos certificamos de que se uma string vier onde um número deveria vir, a informação será rejeitada e não será permitido chegar ao banco de dados onde poderia causar um erro fatal.
Visualizações com base em classe
Com o que vimos no exemplo anterior, podemos agora ver como podemos aplicar algo semelhante usando o Visualizações com base em classe e desta forma usar as ferramentas do framework.
Se usarmos o FormView genérico de Django podemos alcançar algo semelhante ao seguinte código:
de Django.shortcuts import render, redirecionar de Django.views.generic.edit import FormView class MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = '/ success /' def form_valid (self, form): form .save () return super (MyView, self) .form_valid (form)
Como podemos ver, o uso avançado de formulários nos permite tornar as aplicações mais dinâmicas e personalizadas, com as quais podemos alcançar resultados incríveis com apenas algumas linhas de código.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo