raj*_*alx 4 python django django-models
在 Django 模型中,如何使用timezone.now?
在职的:
end_date = models.DateTimeField(default=timezone.now() + timezone.timedelta(days=365))
Run Code Online (Sandbox Code Playgroud)
不工作
end_date = models.DateTimeField(default=timezone.now + timezone.timedelta(days=365))
Run Code Online (Sandbox Code Playgroud)
我认为timezone.now是一个每次创建对象时都会运行的函数。从而发生错误。
你可以使用一个函数:
def f():
return timezone.now() + timezone.timedelta(days=365)
...
end_date = models.DateTimeField(default=f)
Run Code Online (Sandbox Code Playgroud)
该时区中的当前时间end_date是在默认情况下创建新时区时添加的时间增量:
>>> from django.utils import timezone
>>> from datetime import timedelta
>>> def f():
... return timezone.now() + timezone.timedelta(days=365)
...
>>> f()
datetime.datetime(2018, 6, 25, 19, 42, 49, 761389, tzinfo=<UTC>)
>>> f()
datetime.datetime(2018, 6, 25, 19, 43, 2, 953158, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)
使用 Django 运行示例:
In [1]: from testapp import models
In [2]: models.Test.objects.create().date_added
Out[2]: datetime.datetime(2018, 6, 25, 20, 5, 28, 316214, tzinfo=<UTC>)
In [3]: models.Test.objects.create().date_added
Out[3]: datetime.datetime(2018, 6, 25, 20, 5, 33, 114624, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4766 次 |
| 最近记录: |