Widgets são componentes de para entrada de dados em formulários dinâmicos. Um campo de formulário dinâmico tem um tipo e é representado por um widget, que pode ser um dos citados a seguir:
Os widgets padrão do Django são encontrados no pacote "django.forms" e são os mais populares e mais usados.
Classe básica que é herdada por todos os demais widgets.
Widget básico para usar a tag HTML <input>.
Widget básico para usar a tag HTML <textarea>, que permite a entrada de texto livre.
Widget que exibe uma caixa de verificação equivalente à tag HTML <input type="checkbox"/>.
Widget básico para usar a tag HTML <select>, que permite a escolha dentre uma lista de opções.
Permite a construção de seus próprios widgets compostos de vários outros.
Widget dividido em dois: um para a entrada de data e outro para a entrada de hora.
SplitHiddenDateTimeWidget
Semelhante ao "SplitDateTimeWidget", mas não é visível ao usuário.
Widget que exibe um campo para entrada de texto equivalente à tag HTML <input type="text"/>.
Widget que exibe um campo para entrada de texto equivalente à tag HTML <input type="password"/>, que protege a visão para a entrada de senhas.
HiddenInput
Widget equivalente à tag HTML <input type="hidden"/>, para valores ocultos.
MultipleHiddenInput
Semelhante ao "HiddenInput", mas permite múltiplos valores.
Widget para envio de arquivos, equivalente à tag HTML <input type="file"/>. Seu uso necessita que a tag <form> em HTML tenha o parâmetro enctype="multipart/form-data". O arquivo enviado pelo usuário é armazenado no dicionário "request.FILES".
Permite ao usuário informar um valor de data/hora.
Permite ao usuário informar um valor de hora.
Exibe um campo de seleção para a escolha entre três valores possíveis: "Verdadeiro", "Falso" e "Nenhum".
Permite a múltipla seleção dentre uma lista de opções.
Widget que permite ao usuário que escolha uma dentre várias opções em campos de seleção do tipo "radio", equivalente à tag HTML <input type="radio"/>.
Semelhante ao "SelectMultiple", mas a seleção é feita por caixas de verificação (equivale a múltiplas tags HTML <input type="checkbox"/>).
Só há um widget extra, localizado no pacote "django.forms.extra.widgets".
Permite a seleção de uma data de forma amigável, com campos separados para ano, mês e dia.
Os widgets do Admin foram criados específicos para serem usados na interface de administração, mas podem ser usados em formulários dinâmicos comuns. São encontrados no pacote "django.contrib.admin.widgets".
Semelhante ao "SelectMultiple", mas possui códigos em JavaScript que permite o filtro das opções de forma amigável.
Todos eles necessitam da declaração do atributo "media" do formulário, de preferência no cabeçalho do HTML. Todos eles também necessitam da habilitação do pacote de internacionalização de JavaScript (pacote "jsi18n").
Exibe um calendário amigável para a seleção da data.
Exibe um campo amigável para seleção de hora.
Equivale à soma dos widgets "AdminDateWidget" e "AdminSplitDateTime".
Semelhante ao "RadioSelect", mas é renderizado em listas não-numeradas.
Semelhante ao "FileInput", mas exibe o caminho e um link para o arquivo enviado caso haja um valor já informado ali.
Permite a seleção de um objeto relacionado usando apenas seu código. É útil para campos de seleção onde existem centenas ou milhares de opções, o que torna imposível um campo de seleção comum.
Semelhante ao "ForeignKeyRawIdWidget", mas permite múltipla seleção.
Usado para exibir um ícone para adicionar um novo objeto ao lado de um widget do tipo "ForeignKeyRawIdWidget".
Semelhante ao "Textarea", mas acrescenta uma classe CSS a mais para direcionar seu comportamento em JavaScript.
Semelhante ao "TextInput", mas acrescenta uma classe CSS a mais para direcionar seu comportamento em JavaScript.
Semelhante ao "TextInput", mas acrescenta uma classe CSS a mais para direcionar seu comportamento em JavaScript (para valores de URLs).
Semelhante ao "TextInput", mas acrescenta uma classe CSS a mais para direcionar seu comportamento em JavaScript (para números inteiros).
Semelhante ao "TextInput", mas acrescenta uma classe CSS a mais para direcionar seu comportamento em JavaScript (para números inteiros separados por vírgula).