首页 > 解决方案 > Django:从今天开始给日期字段默认值一个月

问题描述

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

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

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

标签: djangodjango-modelsdatefield

解决方案


您可以使用任何可调用对象作为默认值,这样应该可以:

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=30astimedelta不能将月份添加到日期值。如果您考虑一下,“从今天起一个月”是一个非常开放的声明(例如,当今天是 1 月 31 日时,您希望它如何表现?)。


推荐阅读