Hace días avisamos de que íbamos a sortear una de las copias de "La guía definitiva de Django" que Anaya Multimedia nos envió. ¡Y hoy nos ponemos a ello!
Para entrar en el sorteo sólo tenéis que escribir un comentario en esta entrada mediante el formulario que encontraréis al final de la página explicando sobre qué os gustaría que escribiéramos en el blog de Django.es. Obviamente debe tratarse de algún tema relacionado con Django.
De todos los comentarios que recibamos durante este fin de semana seleccionaremos uno al azar. El sorteo se limita a España porque sólo podemos hacer un envío nacional (amigos de Latinoamérica, tendréis que esperar a la próxima...).
Importante: Avisaremos al afortunado via e-mail, por lo que no olvidéis incluir una dirección de e-mail correcta en el campo de e-mail del formulario. ¡Suerte a todos!
Publicado por Antonio Melé el Saturday 10 de July de 2010 | 28 comentarios | Categorías: comunidad, libros
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 Friday 9 de July de 2010 | 1 comentario | Categorías: forms, internacionalización
¿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 snippets AntiSpamForm y AntiSpamModelForm. Están basados en los formularios anti-spam que utiliza la aplicación django.contrib.comments.
Utilizarlos es tan sencillo como guardarlos en nuestro proyecto (por ejemplo en un archivo llamado antispam_forms.py) y usarlos en la definición de nuestros formularios:
from antispam_forms import AntiSpamForm
class MiFormulario(AntiSpamForm):
# campos del formulario...
AntiSpamForm y AntiSpamModelForm utilizan tres métodos para prevenir el SPAM:
Un campo oculto timestamp que adquiere la fecha actual cuando se renderiza el formulario y que se controla en el envío del formulario para evitar envíos excesivamente rápidos (menos de 5 segundos) que generalmente son automáticos. También evita envíos retrasados (más de 2 horas) que pueden ser realizados por bots que primero guardan el formulario y lo tratan de enviar en algún otro momento.
Un campo oculto de hash de seguridad que se genera a partir del timestamp y del setting SECRET_KEY. El hash de seguridad enviado se compara con el hash de seguridad esperado cuando se envía el formulario para rechazar envíos que no incluyan el hash adecuado.
Un campo honeypot que utiliza un CSS display:none; para evitar ser mostrado en el navegador. Los usuarios no lo verán pero la mayoría de spambots tratarán de rellenarlo. El campo honeypot no será validado correctamente si contiene alguna información.
Publicado por Antonio Melé el Thursday 8 de July de 2010 | 0 comentarios | Categorías: forms, snippets, spam
Hace unos días recibimos dos ejemplares de La guía definitiva de Django que nos enviaron nuestros amigos de Anaya Multimedia. Se trata del primer libro publicado en español sobre Django y es la traducción al español de "The Definitive Guide to Django", para el cuál ya existían un par de proyectos de traducción: el de Manuel Kaufmann y el de The-Geek.
"La guía definitiva de Django" contiene todos los capítulos de "The Definitive Guide to Django" y resulta más amena que ésta para aquellos que no dominan tanto el inglés o prefieren leerla en castellano. La traducción, por Oliver Carreira, está bien lograda y algunas explicaciones resultan incluso más claras que en la versión original.
El libro, al ser en papel, resulta muy práctico para aquellos que están empezando a programar con Django ya que obliga a codificar los ejemplos y así ayuda a entender mejor la sintaxis de Python y las funciones de Django. Hay muchas personas que quieren introducirse al desarrollo web con Django pero se asustan al ver que hay muy poca documentación en castellano: Para estos casos el libro resulta perfecto.
Por otra parte, a los que trabajan con Django diariamente les sirve como manual de referencia al que recurrir en cualquier momento para realizar consultas concretas. Un detalle curioso es que el diseño de la portada, con una guitarra, hace un guiño a Django Reinhardt.
La única pega que se le puede poner es el precio, cercano a 50 euros, algo más caro que su homólogo americano. Aunque se mantiene en el rango de precios de libros similares en castellano.
En definitiva, es el primer (y esperemos que no último) libro publicado sobre Django en nuestro idioma y lo recomendamos a todos los que desarrolláis con Django.
"La guía definitiva de Django" se puede comprar desde la web de Anaya Multimedia.
Estad atentos porque pronto sortearemos uno de los ejemplares que nos han llegado :)
Publicado por Antonio Melé el Sunday 27 de June de 2010 | 2 comentarios | Categorías: comunidad, libros
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