26/10/2012, 11:13
|
| | Fecha de Ingreso: marzo-2008 Ubicación: Santa Cruz, Argentina
Mensajes: 433
Antigüedad: 16 años, 8 meses Puntos: 5 | |
Respuesta: Usar Unix Timestamp con DateField asi es la estructura de la db
Código:
CREATE TABLE IF NOT EXISTS `bandas` (
`id` int(11) NOT NULL auto_increment,
`nombre` varchar(64) NOT NULL,
`bio` mediumtext NOT NULL,
`urltag` varchar(64) NOT NULL,
`fecha_creado` text NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `urltag` (`urltag`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=50 ;
y este es mi models.py
Código:
from django.db import models
from datetime import datetime
from time import strftime
class UnixTimestampField(models.DateTimeField):
def __init__(self, null=False, blank=False, **kwargs):
super(UnixTimestampField, self).__init__(**kwargs)
# default for TIMESTAMP is NOT NULL unlike most fields, so we have to
# cheat a little:
self.blank, self.isnull = blank, null
self.null = True # To prevent the framework from shoving in "not null".
def db_type(self):
typ=['TIMESTAMP']
# See above!
if self.isnull:
typ += ['NULL']
if self.auto_created:
typ += ['default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP']
return ' '.join(typ)
def to_python(self, value):
return datetime.from_timestamp(value)
def get_db_prep_value(self, value):
if value==None:
return None
return strftime('%Y%m%d%H%M%S',value.timetuple())
class Artista(models.Model):
nombre = models.CharField(max_length=50)
bio = models.TextField()
fecha_creado = UnixTimestampField(null=True, blank=True)
urltag = models.CharField(max_length=255)
class Meta:
db_table = 'bandas'
def __unicode__(self):
return self.nombre
Muchas gracias desde ya ! |