我在为我的一个 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/