Peewee - 将默认时间设置为未来的日期时间

Peewee - Set a default time as a future datetime

我正在尝试让我的一个表中的一列具有默认值,即每当创建条目时 + 2 周。

这是我目前的列定义:

   dt_end = DateTimeField(default=datetime.datetime.utcnow + datetime.timedelta(weeks=2))

这returns一个错误:

TypeError: unsupported operand type(s) for +: 'builtin_function_or_method' and 'datetime.timedelta'

关于如何解决这个问题的任何线索?

编辑: 我没有将括号放在 utcnow 上,否则所有默认时间都将在服务器上启动。这允许 Peewee 每次都使用函数作为默认值而不是值。这就是问题所在

utcnow 是您缺少调用运算符(括号)

的方法
import datetime

default=datetime.datetime.utcnow() + datetime.timedelta(weeks=2)

给你:

def two_weeks():
    return datetime.datetime.utcnow() + datetime.timedelta(days=14)

dt_end = DateTimeField(default=two_weeks)