Criando um formulário
Parte da seção Forms do Journey de Django da Coddy. Lição 6 de 20.
A página em /events/new/ escreve cada rótulo e campo de entrada manualmente, e EventForm lista os mesmos campos novamente. Um formulário pode ser gerado por conta própria: passe um para o template e escreva {{ form }} dentro da tag <form>. Uma página de contato:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>{{ form }} escreve um rótulo e um campo de entrada para cada campo, na ordem em que a classe os declara. Cada campo de entrada recebe o name do campo e um id como id_email, para que o rótulo aponte para ele. A tag do formulário, o token e o botão continuam sendo responsabilidade sua.
Um formulário ainda sem nenhum dado digitado é a classe chamada sem dados: ContactForm(). O Django também marca os campos de entrada obrigatórios com required, para que o navegador impeça o envio de um campo vazio.
Desafio
Fácil- Em
new_event, passe umEventFormvazio para o template comoform. - Em
new_event.html, substitua os rótulos e os campos de entrada pelo próprio formulário. Mantenha a tag do formulário, o token, o botão e a mensagem de erro.
Clique em Run e abra /events/new/: o Django renderiza os campos.
Experimente você mesmo
{% extends "events/base.html" %}
{% block title %}Add an event{% endblock %}
{% block content %}
<h1>Add an event</h1>
{% if error %}
<p class="error">{{ error }}</p>
{% endif %}
<form method="post">
{% csrf_token %}
<label for="title">Title</label>
<input id="title" name="title">
<label for="date">Date</label>
<input id="date" name="date" type="date">
<label for="place">Place</label>
<input id="place" name="place">
<button type="submit">Add event</button>
</form>
{% endblock %}
Todas as lições de Forms
2Formulários do Django
Um formulário do DjangoCriando um formulárioPratique por conta própria: Playground de Django