python - 使用 DateTimeField 和 timedelta 默认值的 Django 迁移

标签 python django

我在为我的一个 Django 模型设置默认 datetime 时遇到问题

from django.db import models
from django.utils import timezone

class MyModel(models.Model):
    my_datetime = models.DateTimeField(default=timezone.now() + timezone.timedelta(+14))

问题是每次我运行 makemigrations 它都会在那个字段上创建一个新的迁移,默认值序列化为等于现在的值。

migrations.AlterField(
    model_name='mymodel',
    name='my_datetime',
    field=models.DateTimeField(default=datetime.datetime(2016, 2, 4, 5, 56, 7, 800721, tzinfo=utc)),
    )

无论如何我可以为将来的 DateTimeField 设置一个默认值吗?

最佳答案

问题是您将表达式的结果设置为默认值。相反,您需要分配默认值才能为您想要的调用。 这是一个例子:

from django.db import models
from django.utils import timezone

def default_time():
    return timezone.now() + timezone.timedelta(+14)

class MyModel(models.Model):

    my_datetime = models.DateTimeField(default=default_time)

关于python - 使用 DateTimeField 和 timedelta 默认值的 Django 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916439/

相关文章:

python - 从队列中间删除一个项目?

django - 我正在尝试使用 Heroku CLI 在 Heroku 中部署我的 django 项目我遇到安装错误

python - 自动化多个安装程序

python - Flask-SQLAlchemy 查询,其中子字符串在数据库中针对整个字符串

python - Django : Several paths, 一个ListView,不同的模板?

python - Django "can' t 调整类型”使用多个数据库时出错(Postgresql 8.4 和 sqlite3)

python - HTML 不在 django 中提供图像

django - 在 wagtail admin 中内联编辑 django 'through' 模型?

python - 使用给定的时间增量对时间序列进行重采样

python - 使用 stem 切换身份时一般 SOCKS 服务器故障