在django中创建自动日期时间

在django中创建自动日期时间,django,model,Django,Model,我想创建一个具有预定义日期时间的字段。大概是这样的: class MyExample(models.Model): 过期=时区。现在()+时间差(天=1) expiration\u date=models.DateTimeField(verbose\u name=“Expirate in”,默认值=expiration) ... 我不知道这是否是最好的方法,因为当有新的迁移时,表会更新为过期 有人有什么建议吗?您在这里将过期日期设置为启动服务器后一天的时间戳。但是如果您这样运行服务器一周,那么

我想创建一个具有预定义日期时间的字段。大概是这样的:

class MyExample(models.Model):
过期=时区。现在()+时间差(天=1)
expiration\u date=models.DateTimeField(verbose\u name=“Expirate in”,默认值=expiration)
...
我不知道这是否是最好的方法,因为当有新的迁移时,表会更新为
过期


有人有什么建议吗?

您在这里将过期日期设置为启动服务器后一天的时间戳。但是如果您这样运行服务器一周,那么当您创建
MyExample
时,所有
expiration\u date
都将在时间戳之前过期

您应该定义一个返回过期日期的函数,并将对该函数的引用作为默认值传递:

from datetime import timedelta
from django.utils.timezone import now

def expiration():
    return now() + timedelta(days=1)

class MyExample(models.Model):
    expiration_date = models.DateTimeField(
        default=expiration,
        verbose_name='Expirate in'
    )
从日期时间导入时间增量
从django.utils.timezone立即导入
def expiration():
立即返回()+时间增量(天=1)
类MyExample(models.Model):
过期日期=models.datetime字段(
默认值=到期,
详细的\u name='Expirate in'
)