1 2 3 4 5 6 7 8 | # Takes model and fieldname and sets field to current datetime on pre_save
def auto_now_on_save(model, fieldname):
from django.db.models import signals
from django.dispatch import dispatcher
def _update_datefield(instance):
from datetime import datetime
setattr(instance, fieldname, datetime.now())
dispatcher.connect(_update_datefield, signal=signals.pre_save, sender=model, weak=False)
|
Comments
It's good to know that for now that Django's signals are a fairly large performance hit. To remedy this, you can simply do this:
It's one more line than if you import your solution and apply it to a field, but doesn't incur the performance penalty that signals currently entail.
#