SQLAlchemy中等价于Django的auto_now, auto_now_add是什么?

17 投票
2 回答
6400 浏览
提问于 2025-04-17 17:26

在Django中,我们在创建日期字段时可以使用这两个参数:

DateField.auto_now:每次保存对象时,自动将这个字段设置为当前时间。这对于记录“最后修改时间”非常有用。需要注意的是,这里总是使用当前日期,而不是一个你可以随意更改的默认值。

DateField.auto_now_add:在对象首次创建时,自动将这个字段设置为当前时间。这对于记录创建时间非常有用。同样,这里总是使用当前日期,而不是一个你可以随意更改的默认值。

那么在SQLAlchemy中怎么做呢?

2 个回答

0

你仍然可以使用下面的内容:

enter_date = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)

在更新数据的时候,sqlalchemy 还会把当前的日期设置为数据更新的时间。

36

最后,在查看了SQLAlchemy的文档后,这应该是正确的方法:

Column('created_on', DateTime, default=datetime.datetime.now)

Column('last_updated', DateTime, onupdate=datetime.datetime.now)

文档链接在这里:

http://docs.sqlalchemy.org/en/latest/core/defaults.html#python-executed-functions

撰写回答