使用django中相同模型中的日期字段值设置截止日期和投票日期的默认值

时间:2016-08-01 06:45:16

标签: django

我创建了一个模型,用于输入会话的开始日期以及截止日期和投票日期。我的模特是:

from datetime import datetime, timedelta
class Sitting(models.Model):
    sit_date = models.DateField(blank=False)
    cut_off_date = models.DateField(default=get_cut_off_date)
    ballot_date = models.DateField(default=ballot_date)
    genre = TreeForeignKey('Genre', null=True, blank=True, db_index=True)
    sess_no = models.ForeignKey(Session,
                                 on_delete=models.CASCADE)

    def get_cut_off_date(self):
        return self.sit_date - timedelta(days=16)

    def ballot_date(self):
        return self.sit_date - timedelta(days=12)

    def __str__(self):  # __unicode__ on Python 2
        return self.sit_date

我想从同一型号的就座日期值中设置截止日期和选票日期默认值。但我的模型不起作用。如何从坐位日期的输入设置截止日期和投票日期的默认值?

1 个答案:

答案 0 :(得分:0)

您已创建了获取cut_off_date的函数,因此只需覆盖save方法即可更新cut_off_date

class Sitting(models.Model):
    sit_date = models.DateField(blank=False)
    cut_off_date = models.DateField(null=True, blank=True)

    def get_cut_off_date(self):
        ....

    def save(self,  *args, **kwargs):
        self.cut_off_date = self.get_cut_off_date()
        super(Model, self).save(*args, **kwargs)