Django:timezone.now与timezone.now()

Django:timezone.now与timezone.now(),第1张

Django:timezone.now与timezone.now()

在python中,一切都是对象,包括函数。这意味着您可以将函数影响到变量:

>>> from django.utils import timezone>>> foo = timezone.now>>> foo<function django.utils.timezone.now>>>> foo()datetime.datetime(2016, 7, 7, 9, 11, 6, 489063)

函数是可调用的对象:

>>> callable(foo)True>>> callable(foo())False

default
接收到可调用对象时,每次请求默认值时都会调用该可调用对象。

另一方面,在

timezone.now()
设置之前调用时
default
,将给出并固定该值。提醒一下,由于以下行是类属性,因此在服务器启动时仅执行一次:

    datetime_released = models.DateTimeField(default=timezone.now())

因此

timezone.now()
仅执行一次。传递一个callable
timezone.now
使得可以在需要时重新计算该值。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5673626.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存