django - 在 django 中创建自动日期时间

标签 django model

我想创建一个具有预定义日期时间的字段。像这样的事情:

class MyExample(models.Model):
    expiration = timezone.now() + timedelta(days=1)
    expiration_date = models.DateTimeField(verbose_name="Expirate in", default=expiration)
    ...

我不知道这是否是最好的方法,因为当有新的迁移时,表会更新过期

有人有什么建议吗?

最佳答案

您在此处将到期日期设置为启动服务器一天后的时间戳。但是,如果您因此运行服务器一周,则所有 expiration_date 都将在您创建 MyExample 时的时间戳之前过期。

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

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

def <b>expiration</b>():
    return now() + timedelta(days=1)

class MyExample(models.Model):
    expiration_date = models.DateTimeField(
        <b>default=expiration</b>,
        verbose_name='Expirate in'
    )

关于django - 在 django 中创建自动日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65580752/

相关文章:

python - Django 。列出静态文件夹中的文件

mysql - 在 Rails 中查询关联模型的正确语法

javascript - 如何将 Django 数据传递到外部 JS 文件?

python - 无法显示静态图像和 css 文件

ruby-on-rails - 在具有两个日期属性的 Rails 中进行验证

php - Phalcon ORM 字段与同一表中的另一个字段有关系

javascript - 如何在 Three.js 中向 .obj 模型添加颜色?

oop - 如何在 UML 序列图的自消息方法中绘制方法

python - 鹡鸰单页站点

python - 在 Ubuntu 14.04 可信服务器上使用 nginx 和 Gunicorn 的多个 Django 应用程序