![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYlkfVOpYpf403UjKG_H-WiCqgmt8N8N5a6qJIKpDPZYChomXYW0wD75_346r3oxFInuFKMRSJPD5DK_Dpe5-jmVJDzXvnlnVGGD-Cx4WiPqYLNdKAdBufh5fwsx8p1ajLoag/s200/CloserLook.png)
Either way I think it's funny. No, it doesn't take a lot to amuse me. I guess I'm just a geek at heart.
class ModificationDateTimeField(models.DateTimeField):
def __init__(self, editable=False, *args, **kw):
models.DateTimeField.__init__(self, editable=editable, *args, **kw)
def pre_save(self, instance, add):
val = datetime.datetime.now()
setattr(instance, self.attname, val)
return val
class CreationDateTimeField(ModificationDateTimeField):
def __init__(self, editable=False, *args, **kw):
models.DateTimeField.__init__(self, editable=editable, *args, **kw)
def pre_save(self, instance, add):
if not add:
return getattr(instance, self.attname)
return ModificationDateTimeField.pre_save(self, instance, add)
class AutoDateTimeField(models.DateTimeField):
def pre_save(self, model_instance, add):
return datetime.datetime.now()
class AutoNowDateTimeField(models.DateTimeField):
def pre_save(self, instance, add):
val = datetime.datetime.now()
setattr(instance, self.attname, val)
return val
class AutoNowAddDateTimeField(AutoNowDateTimeField):
def pre_save(self, instance, add):
if not add:
return getattr(instance, self.attname)
return AutoNowDateTimeField.pre_save(self, instance, add)