gpt4 book ai didi

Django 默认值=timezone.now + delta

转载 作者:行者123 更新时间:2023-11-28 19:37:12 24 4
gpt4 key购买 nike

尝试在 Django 模型中为 key 过期设置时间戳并遇到此问题:

我当前的代码:

key_expires = models.DateTimeField(default=timezone.now() + timezone.timedelta(days=1))

上面的代码有效,但是当使用“timezone.now()”时,它从 Apache 重新启动的时间获取时间戳,所以这不起作用。我做了一些研究并找到了那部分问题的解决方案,所以通过用“timezone.now”替换“timezone.now()”,每次创建对象时我都会得到当前时间戳,这是完美的,问题得到部分解决。

我在使用“timezone.timedelta(days=1)”更改日期时遇到问题。

key_expires = models.DateTimeField(default=timezone.now + timezone.timedelta(days=1))

我得到的错误是:

key_expires = models.DateTimeField(default=timezone.now + timezone.timedelta(days=1))

类型错误:+ 不支持的操作数类型:'function' 和 'datetime.timedelta'

目标是提前 24 小时设置时间戳。

非常感谢任何帮助。

最佳答案

default 接受一个可调用函数,因此您只需要编写一个函数来执行您想要的操作,然后将其作为参数提供:

def one_day_hence():
return timezone.now() + timezone.timedelta(days=1)

class MyModel(models.Model):
...
key_expires = models.DateTimeField(default=one_day_hence)

(如 here 所讨论,抵制将其设为 lambda 的诱惑。)

关于Django 默认值=timezone.now + delta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com