Python 如何使用同一模型的整数字段向django模型上的datetime字段添加天数?

Python 如何使用同一模型的整数字段向django模型上的datetime字段添加天数?,python,django,datefield,Python,Django,Datefield,正如我在标题中所说,我需要自动填充Django模型的一个字段,特别是一个日期字段,添加我在同一模型表单中指定的X个天数 在我的情况下,我需要将我在“total_days”中输入的天数添加到我在“start_day”字段中使用的日期,并将结果保存在“end_day”中 模型如下: class Certificate(models.Model): employee = models.ForeignKey(Employee) license_type = models.Integer

正如我在标题中所说,我需要自动填充Django模型的一个字段,特别是一个日期字段,添加我在同一模型表单中指定的X个天数

在我的情况下,我需要将我在“total_days”中输入的天数添加到我在“start_day”字段中使用的日期,并将结果保存在“end_day”中

模型如下:

class Certificate(models.Model):

    employee = models.ForeignKey(Employee)
    license_type = models.IntegerField(choices=LICENSE_TYPES, default=1)
    disease_type = models.IntegerField(choices=DESEASE_TYPES, blank=True, null=True)
    total_days = models.PositiveIntegerField()
    extra_days = models.PositiveIntegerField(Default=0)
    start_day = models.DateField()
    end_day = models.DateField(, editable=False)
    doctor = models.ForeignKey(Doctor)
    diagnostic = models.CharField(max_length=150)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    created_by = models.ForeignKey(User, related_name='certificates_created_by', editable=False)
    modified_by = models.ForeignKey(User, related_name='certificates_modified_by', editable=False, blank=True, null=True)


    class Meta:
        verbose_name = "certificado"
        verbose_name_plural = "certificados"

    def __str__(self):
        pass
我试着使用“timedelta”,但我不能使用start_day字段,因为它不能像整数一样检测。timedelta需要一个整数参数

你知道我该怎么做吗

现在我直接在视图上执行此操作,并将上下文上的结果发送到模板。但是用户需要从第一个开始就将其保存到数据库中


非常感谢

您可以创建get\u end\u date函数,并将开始日期作为参数传递给该函数。根据您的编码方便

from datetime import datetime, timedelta
start_date = datetime.strptime(start_day, "FORMAT") #start_day should be from your model and FORMAT as it is
end_day = start_date + timedelta(days=no_of_days_to_add)
end_date = end_day.strftime(end_day, <FORMAT>)
从datetime导入datetime,timedelta
start_date=datetime.strtime(start_day,“FORMAT”)#start_day应该来自您的模型并按原样格式化
结束日=开始日+时间差(天数=无需添加天数)
结束日期=结束日期。strftime(结束日期,)

首先,您不想将其添加到您的模型中!您必须创建一个函数,如:def total_day(self):>>>返回天数!现在你怎么计算全天???不是我手工计算的表格!是医生证明,他给一个人多少休息日。我必须在表单中输入天数(如果医生安排4天休息,我将在总天数中输入该数字)。是的,但我需要在创建新对象时保存结束日期。在表格中,我必须填写开始日和总天数,以及何时填写保存!我需要结束日在DB中自动保存正确的值(开始日+总天数)。处理表单时,您可以通过将表单值中的开始日期和总天数作为变量传递,并通过函数返回结束日期来调用函数。然后可以将值保存到数据库中。希望这能澄清。哦,是的,我在create视图上做了类似的事情。但是当我使用管理面板时,它不工作。对于管理视图,您需要调用admin.py中的函数。。。在这里引用模型管理对象是的,我找到了这个,我正在处理它