Links despues de semana santa
Hola mis vacaciones de semana santa han sido cortas pero llevo unas semanas agobiado por el curro y por 22d, vamos a intentar retomar el ritmo.
Hola mis vacaciones de semana santa han sido cortas pero llevo unas semanas agobiado por el curro y por 22d, vamos a intentar retomar el ritmo.
Experimento de investigación cutre.
Reparto invitaciones para Tuenti, simplemente envía un comentario pidiéndome una invitación poniendo el Nombre del usuario y el correo donde quieres recibir la invitación.
Muy pocos seguiran leyendo estos parrafos que vienen a continuación, por supuesto NO reparto invitaciones para Tuenti, pero hay un furor por esta red social que estoy seguro que batiré récords en comentarios en este post, es mas en menos de 2 semanas seguro que he superado mas de 30 comentarios, porque estoy seguro que no leemos, es mas si dijera que gracias por tu correo, el cual sera utilizado en una venta masiva de mails a un spammer tendria los mismos comentarios o mas. Tendré que pensármelo ;-)
Este experimento no es original mio, la idea inicial pertenece a Alfonso Jiménez que podéis encontrar el experimento aqui.
Voy a intentar publicitar esta entrada a través de trackbacks, twitter, se supone que no debería funcionar porque estoy haciendo cerca de 8 meses mas tarde de lo que se deberia, pero vamos a comprobar que pasa.
Bueno a esperar. por cierto la única manera de conseguir invitaciones en Tuenti es o a través de alguna persona dentro, o pidiéndola aqui.
Otra de mis traducciones libres ;-)
Fuente: http://www.djangoproject.com/documentation/model-api/
El modelo es único, es el código definitivo de los datos sobre tu información. Contiene los campos esenciales y los comportamientos de la información que almacenas. Generalmente cada modelo mapea a una uncia tabla de base de datos.
Cada modelo es una clase python que es una subclase de django.db.models.Model. Cada atributo del modelo representa un campo de la Base de Datos. El Metadata del modelo (información sin campo) se incluye en una clase interna llamada Meta. El Metadata usado por el site de Administración de Django se incluye en una clase interna llamada Admin. Con todo esto, Django proporciona una API de Acceso a Base de datos generado de manera automática, esto esta explicado en la Database API reference
Un documento adjunto a este es el repositorio oficial de ejemplos de modelo de datos. En el código fuente de Django estos ejemplos se encuentran en el directorio test/modeltest.
En este ejemplo se hace el modelo de Persona, con los atributos first_name y last_name:
first_name y last_name son campos del modelo. Cada campo esta especificado como un atributo de clase y cada atributo mapea una columna de la base de datos.
El anterior modelo de Person la orden de create table sera asi:
Algunas notas tecnicas:
La parte más importante del modelo, y la única parte requerida por el modelo es la lista de campos definida. Los campos son especificados como atributos de clase.
Ejemplo:
Django solo tiene dos restricciones en el nombre de los campos del modelo:
-
Estas son las limitaciones para trabajar, tenga en cuenta también que los nombres de los campos no tienen que coincidir necesariamente con el nombre de la columna de la base de datos.
Mirar db_column a continuación.
Cada campo el modelo debe ser una instancia apropiada de un atributo de una clase, Django utiliza los tipos de atributo de clase para determinar unas pocas cosas:
BooleanField
Un campo de verdadero/falso, en la admin se representa como un checkbox
CharField
Un campo de texto para pequeñas cadenas, para mas grandes usar TextField. En la admin se representa como un "Text". Este campo tiene un requerimiento extra como argumento, max_length, longitud máxima en caracteres del campo, el atributo max_length se aplica en la BBDD y como validación en django.
CommaSeparatedIntegerField
Un integer separado por comas como el CharField el argumento max_length es requerido.
DateField
Un campo de Fecha, tiene algunos argumentos extra opcionales
auto_now automáticamente se da el valor del momento en el que el objeto es grabado, muy util para valores como "ultima modificación", siempre se utilizara la (current date) fecha actual, no es valor que puedas sobreescribir
auto_now_add automáticamente se da el valor del momento en el que el objeto se Crea, muy útil para valores como "creado el" siempre se utilizara la (current date) fecha actual, no es valor que puedas sobreescribir.
En el Admin esto se representa como un "text" con un calendario en Javascript, y un link a "Today", El Calendario empieza en Domingo.
DateTimeField
Un campo de Hora y Fecha, tiene las mismas opciones extra que el campo DateTime, en el Admin se representa con 2 campos "text", con links en Javascript.
DecimalField
Nuevo en la versión de desarrollo
Un numero decimal de precisión fija, representado en Python con una instancia de Decimal, Tiene 2 argumentos requeridos:
max_digits El numero máximo de dígitos permitido en el numero.
decimal_places El numero de posiciones decimales que tendrá el numero.
Por ejemplo, para almacenar numeros superiores a 999 con 2 posiciones decimales tu usarías:
models.DecimalField(..., max_digits=5, decimal_places=2)
Y para números superiores aproximadamente a un billón con 10 decimales:
models.DecimalField(..., max_digits=19, decimal_places=10)
El admin lo representa con un "Text" (en una entrada de una unica linea).
EmailField
Un campo CharField que chequea que el valor sea una dirección de email valida.
En la versión 0.96 no acepta max_length, automáticamente sera de 75, en la versión en desarrollo, viene por defecto a 75 pero se puede sobrescribir este comportamiento.
FileField
Un campo para subir ficheros, tiene un argumento requerido
upload_to Una ruta del sistema local que puedes añadir a la propiedad MEDIA_ROOT para determinar la salida de la función de ayuda get_
El admin es representado con un "file",
Podemos usar el FileField o ImageField en pocos pasos:
Continuara...
En Chicago comenzó la PyCon 2008, la conferencia de python en EEUU, y uno de los creadores de Django Adrian Holovay, esta dando una charla sobre el estado de django, os recomiendo el post de unbracketed que hace un resumen de la charla titulada "el estado de django".
En la charla comenta que el Equipo de desarrollo de Django no tienen un calendario exigente buscando liberar la versión 1.0, y pide disculpas a las empresas que están esperando una versión para adoptarlo en sus desarrollos, esto ya se comento en la traducción que hizo Marcelo Ramos de la entrevista que le hicieron a Adrian Holovaty
Haciendo una revisión del desarrollo de Django en el ultimo año destacan:
El avance de GeoDjango que hace posible tener un framework web especializado en geo-localización, nos da geo-soporte como distancias localización de objetos, distancia geográfica entre dos objetos, los tíos de GeoDjango están haciendo un gran trabajo que esta permitiendo una herramienta de desarrollo para un sector tan creciente como el GIS, sin olvidar que le esta dando un empujón a POSTGIS leer el manual en español.
Diferentes sitios han sido lanzados por la comunidad en el pasado año.
La refactorización del queryset representa una mayor refactorización de la lógica de las consultas de la BBDD, esto permitirá tener un código mas limpio y mejora las actuales deficiencias y los modelos pendientes
La rama de los nuevos formularios del Admin se ha reescrito para utilizar newforms, se ha hecho muchisimo esfuerzo para permitir a los desarrolladores esta característica, también se ha desacoplado el metadata del admin de los modelos, se habilita la posibilidad de crear diferentes sitios en el admin para modelos básicos.
Una de las características pendientes para la versión 1.0 es la validación del modelo de datos, esto es un punto muy importante antes de subir versión ya que se esta estudiando las diferentes formas mas adecuadas de hacerlo.
Por ultimo dan la noticia de la creación de una fundación sin animo de lucro, la cual se encargara de promocionar y llevar mas lejos a Django.