该文档在DateField.auto_now_add中写道:
首次创建对象时自动将字段设置为“现在”。...如果您希望能够修改此字段,请设置以下内容而不是auto_now_add=True
:
- 对于
DateField
:default=date.today
-from datetime.date.today()
- 对于
DateTimeField
:default=timezone.now
-from django.utils.timezone.now()
所以对于DateField()和DateTimeField(),我可以分别设置当前默认的日期和时间,如下所示:
# "models.py"
from datetime import date
from django.utils import timezone
class MyModel(models.Model):
date = models.DateField(default=date.today) # Here
datetime = models.DateTimeField(default=timezone.now) # Here
现在,如何将当前默认时间设置为TimeField(),如下所示?
# "models.py"
class MyModel(models.Model): # ?
time = models.TimeField(default=...)
2条答案
按热度按时间tvokkenx1#
你可以使用一个 callable:
每次你定义一个新的
MyModel
,而时间没有过去,它将 * 调用 *current_time
方法,从而返回当前的时间分量(时间分区的时间)。使用括号 not 很重要,所以
default=current_time
,notdefault=current_time()
。vsaztqbk2#
您可以使用datetime.datetime.now()和datetime.datetime.now().strftime()或time.strftime()和time.localtime()将当前默认时间设置为TimeField(),如下所示?
或者: