code: 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(f 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()
docs: 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.