Usando o newforms do Django para gerar formulários

Posted on Dezembro 7, 2007. Filed under: Django | Tags: , , |

Esse é meu primeiro tutorial, não é extenso pois estou iniciando no Django e Python, e como eu gosto de ajudar sempre que possível eu vou compartilhar a experiência que fiz com essa classe nova do django, o newforms.

Eu não vou me deter a explicar como iniciar uma aplicação nova e etc, isso já esta descrito nos tutoriais traduzidos do site da comunidade djangobrasil.org

Vamos usar essas declarações:

from django import newforms as forms
from django.shortcuts import render_to_response

Agora vamos criar a classe na qual usaremos para gerar o formulário:

class ContatosForm(forms.Form):
    nome = forms.CharField(max_length=100, required=True)
    endereco = forms.CharField(max_length=100, required=False)
    email = forms.EmailField(required=False)
    telefone = forms.CharField(max_length=100, required=True)
    celular = forms.CharField(max_length=100, required=False)

Bom a gente declarou os campos, definimos o tamanho e tipo de cada um e dissemos para cada campo se ele é requerido ou não, se deixarmos um campo requerido vazio uma mensagem vai ser gerada dizendo que o campo é obrigatório e deve ser preenchido.

Agora vamos fazer a função que vai retornar o html para a pagina que vamos usar para gerar o nosso formulário:

def index(request):
    data = {'nome': 'Rafael Campos de Bastiani',
            'endereco': 'algum lugar',
            'email': 'testando@teste.net',
            'telefone': '549018283',
            'celular': '549018282'}
    f = ContatosForm(data)
    return render_to_response('index.html', {'form': f.as_table()})

Crio uma variável “data” na qual vai conter os dados que vão aparecer nos campos do formulário. Após passo a classe ContatosForm para a variável “f” e mando os dados junto com a classe. Agora vem o retorno “render_to_response”, esse cara vai abrir o index.html e mandar para ele a nossa variável “f” na qual vai passar a se chamar “form” dentro do código html, notem que uso a opção as_table() essa opção é para gerar os campos em uma tabela html.

Vamos ao código da pagina index.html:
<html>
<head>
<title>Newforms Django</title>
</head>
<body>
<table>
{{form}}
</table>
</body>
</html>

Esse é o nosso html, notem o {{form}} entre as tags

e ali aonde o a mágica vai acontecer, o nosso formulário será criado bem ali, lembra que passamos a nossa classe para essa variável “form”? pois bem é ela que vai gerar tudo para nós.

Em breve veremos como usar o newforms com modelos e assim geraremos nossos formulários a partir dos modelos criados para armazenarmos dados.

Espero ter ajudado!

Abraços!

Referencia: http://www.djangoproject.com/documentation/newforms/

OBS: Eu nao to conseguindo formatar os codigos para que eles apareçam identados, quando eu tiver mais tempo eu vou arrumar isso.

Make a Comment

Make a Comment: ( 2 so far )

blockquote and a tags work here.

2 Responses to “Usando o newforms do Django para gerar formulários”

RSS Feed for Rafael (Core Dump) Comments RSS Feed

Rafael,
Parabéns pelo artigo, excelente !.
Estou aguardando anciosamente pela continução.

Um grande abraço,
Leandro.

Parabéns pelo tutorial Rafael!

Tão pouco tempo usando Django e já está ajudando a comunidade.

É isso ai!!

Abraços


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...