通过创建单独的变量来获取用户定义的天数,在 Django 模型中添加当前日期后的天数

问题描述

我想通过 Django 创建账单。 我想在当前日期之后添加 10 天。但天数应该由用户定义。 如果due_days= 10,那么它将在当前due_date之后添加 我试过了

from django.db.models.fields import DateTimeField
from datetime import datetime,timedelta

due_days = models.IntegerField()
due_date = DateTimeField(default=datetime.Now()+timedelta(days=due_days))

错误

due_date = DateTimeField(default=datetime.Now()+timedelta(days=due_days))
TypeError: unsupported type for timedelta days component: IntegerField

是什么导致了这个错误,我该如何解决

解决方法

通过覆盖 save() 方法来尝试这种方法。我认为这是你唯一能做的:

def save(self,*args,**kwargs):
    if self.due_days:
        self.due_date = datetime.now()+timedelta(days=self.due_days)
    super().save(*args,**kwargs)
,
    def save(self,**kwargs):
    if self.due_days:
        self.due_date = datetime.now()+timedelta(days=self.due_days)
        print ("due_date",self.due_date)
    super().save(*args,**kwargs)

当我在当前日期中添加天数时,它给了我正确的输出。但是due_date 字段没有保存在数据库中。并且无法显示。

如何将其保存到数据库中?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...