Using signals guarantees that timestamps are set no matter what:
    loading fixtures, bulk inserts, bulk updates, etc.
    Indeed, the `save()` method is *not* called when using fixtures.

def update_timestampable_model(sender, instance, *args, **kwargs):
    '''
    Using signals guarantees that timestamps are set no matter what:
    loading fixtures, bulk inserts, bulk updates, etc.
    Indeed, the `save()` method is *not* called when using fixtures.
    '''
    if not isinstance(instance, TimestampableModel):
        return
    if not instance.pk:
        instance.created_at = now()
    instance.updated_at = now()