Django incluye la aplicación django.contrib.localflavor que agrupa campos de formulario y widgets específicos para distintos países. Vamos a ver lo que podemos hacer con el "local flavor" para España.
Podemos utilizar el campo es.forms.ESIdentityCardNumberField para validar la entrada comprobando si se trata de un NIF (españoles), NIE (extranjeros) o CIF (empresas) válido.
El campo es.forms.ESCCCField permite validar si la entrada es un número de cuenta bancaria verificando que se trata de un Código Cuenta Cliente correcto. El formato debe ser EEEE-OOOO-CC-AAAAAAAAAA siendo E, O, C y A los dígitos de entidad bancaria, número de oficina, código de control y número de cuenta. El delimitador entre los dígitos puede ser un guión, un espacio o puede no usarse delimitador alguno.
El campo es.forms.ESPhoneNumberField permite validar números de teléfono españoles. Los números deben de tener 9 cifras siendo la primera de ellas 6, 8 ó 9.
El campo es.forms.ESPostalCodeField permite validar códigos postales de España. Los códigos deben de tener 5 cifras, las primeras dos representan el número de provincia y deben estar entre 01 y 52.
Además de los campos de formularios también se incluyen dos widgets que permiten seleccionar provincias y regiones de España en formularios.
El widget es.forms.ESProvinceSelect consiste en un elemento select con todas las provincias de España.
El widget es.forms.ESRegionSelect consiste en un elemento select con todas las comunidades autónomas.
Vamos a ver cómo crear un sencillo formulario en el que usuario tenga que introducir su nombre, su NIF/NIE/CIF, un número de teléfono, una provincia, un código postal y una cuenta bancaria:
from django import forms
from django.contrib.localflavor.es.forms import *
class Formulario(forms.Form):
nombre = forms.CharField(max_length=80)
nif = ESIdentityCardNumberField()
tel = ESPhoneNumberField()
provincia = forms.SelectField(widget=EsProvinceSelect())
codigo_postal = ESPostalCodeField()
cuenta = ESCCCField()
Publicado por Antonio Melé el Viernes 9 de Julio de 2010
Compártelo:
| Categorías:
forms,
internacionalización
Slughifi es un código que mejora las características de la función slugify de django.template.defaultfilters. Soporta muchos más caracteres internacionales con todo tipo ...
Una de las cosas que nos ofrece Django es vistas genéricas y soporte para localización (aka i10n) e internacionalización (aka i18n). Entonces una vez ...
El campo de formulario ModelChoiceField sirve para permitir la selección de un elemento entre los objetos resultantes de una QuerySet. La QuerySet inicial puede ...
¿Quieres luchar contra el SPAM en tus formularios sin tener que modificarlos? Una forma sencilla de evitar gran parte del SPAM automático son los ...
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas