Question: How to make the default value of two different datetime fields match?
Probably the easiest way is to override the `save()` method:

```python
class BaseModel(...):
    def save(self, *args, **kwargs):
        self.updated_at = dt.now(tz)
        if not self.created_at: self.created_at = self.updated_at
        return super(BaseModel, self).save(*args, **kwargs)
``` Thanks!
Apparently, this won't work when using `Model.insert()`, since it would require a database-level default (`DEFAULT CURRENT_TIMESTAMP`).
But in order to have a database-level default, we would need to get rid of the Peewee default value, which then would break the logic for `Model.create()`. >which then would break the logic for Model.create().

That doesn't sound correct to me. You are right, sorry!
I think what broke my tests was that `db.evolve()` won't detect the new `constraints=[SQL('DEFAULT CURRENT_TIMESTAMP')]` param.
Is it expected? I just checked [the docs](https://docs.peewee-orm.com/en/latest/peewee/models.html?highlight=CURRENT_TIMESTAMP#some-fields-take-special-parameters) but didn't find anything stating it wouldn't be detected by `db.evolve()`. I don't know what evolve is. It's not part of this library. Database-provided defaults work just fine with peewee, as do python-side defaults. Sorry @coleifer, I thought peewee db evolve was part of this library. Thanks very much for your help!
Hi all!

How to make the default value of two different datetime fields match?

Say I have the following `BaseModel`:
```python
class BaseModel(Model):
    id = CharField(primary_key=True, default=lambda: shortuuid.uuid())
    created_at = DateTimeTZField(default=lambda: dt.now(tz))
    updated_at = DateTimeTZField(default=lambda: dt.now(tz))
```

Now, when the object is created/instantiated, the values in `created_at` and `updated_at` will have slightly different timestamps (which is completely understandable).

**What would be the ideal approach to make sure they match 100% when an object is first created?**

I initially tried using `DateTimeTZField(constraints=[SQL('DEFAULT CURRENT_TIMESTAMP')])` instead, but when creating a new record (eg: `BaseModel.create()`), Peewee will try to insert  `created_at` and `updated_at` as `NULL`, which will override the DB server default.
Then I thought that maybe I could use `pre_init` or `pre_save` signals to explicitly set `instance.updated_at = instance.created_at`, which works, but I thought there might be a better way to accomplish this.

Thank you in advance!
