首页 > 解决方案 > 如何将 timezone.today 作为默认值?

问题描述

我想将我的 DateField 的默认值设置为 UTC 时区的今天日期。

如果我放datetime.now(timezone.utc).date(),它将是服务器重新启动时调用的固定值。

如果我放timezone.now,它将返回 datetime 对象,而不是 day 对象。

如何获取 UTC 时区的今天日期?一个可调用的函数(最后没有括号)因为如果我放timezone.now().date,它不会在服务器重新启动时被调用,而不是在每次创建/更新对象时调用?

标签: djangodatefield

解决方案


你似乎已经大部分解决了你自己的问题。简单地创建“一个可调用的函数”。

from datetime import datetime

def today_utc():
    return datetime.utcnow().date()

class MyModel(models.Model):
    my_field = models.DateField(default=today_utc)

推荐阅读