在表定义中,经常需要使用createtime、updatetime两个字段,在SQLModel中,可以定义这样一个数据模型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class TimestampModel(SQLModel):
""" 时间公共字段模型定义 """
create_time: datetime = Field(
default_factory=partial(datetime.now, UTC),
nullable=False,
description="创建时间",
sa_column_kwargs={
"server_default": text("CURRENT_TIMESTAMP")
}
)

update_time: datetime = Field(
default_factory=partial(datetime.now, UTC),
nullable=False,
description="更新时间",
sa_column_kwargs={
"server_default": text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
}
)