Как динамически установить дату по умолчанию в поле DateField
Я пытаюсь добавить поле today + 7 days
в качестве значения по умолчанию в Django DateField.
Вот как я делаю.
date_validity = models.DateField(default=datetime.date.today() + timedelta(days=7))
Но это дает мне проблему.
Одна вещь - поле изменяется каждый раз, когда мы выполняем команду makemigrations/migrate
, но мы не делаем никаких изменений. Как я могу настроить это точно?
Добавьте следующее в модель, чтобы установить дату, когда она не задана/не установлена.
def save(self, *args, **kwargs)
if not self.date_validity:
self.date_validity = datetime.date.today() + timedelta(days=7)
super().save(*args,**kwargs) # Or super(MyModel, self).save(*args,**kwargs) # for older python versions.
Получить дату для поля.
def get_default_date():
return datetime.date.now() + timedelta(days = 7)
А затем в поле:
date_validity = models.DateField(default=get_default_date)
Возможный дубликат: