Django:给日期字段自今天起一个月的默认值

时间:2018-08-09 03:31:06

标签: django django-models datefield

在Django中,您可以有一个日期字段,并将默认值设置为今天。

start_date = models.DateField(default=timezone.now, blank=True, null=True)

如何将默认日期设置为从今天起1个月?

1 个答案:

答案 0 :(得分:4)

您可以将任何callable用作默认值,这样应该可以工作:

from datetime import timedelta

def one_month_from_today():
    return timezone.now() + timedelta(days=30)

class MyModel(models.Model):
    ...
    start_date = models.DateField(default=one_month_from_today, blank=True, null=True)

请注意,我将days=30用作timedelta不能将 month 添加到日期值。如果您想到了这一点,那么“从今天开始一个月”是一个非常开放的声明(例如,当今天是1月31日时,您希望它如何表现?)。