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)
我正在尝试让我的一个表中的一列具有默认值,即每当创建条目时 + 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)