fakeMake
fakeMake

Reputation: 778

Add days to a given date in Django

I'd like to add 14 days to return date but I get the error below.

return_date = models.DateField(issue_date + datetime.timedelta(days=14))
TypeError: unsupported operand type(s) for +: 'DateField' and 'datetime.timedelta'

Here is my model

class Issue(SafeDeleteModel):
    _safedelete_policy = SOFT_DELETE
    borrower_id = models.ForeignKey(Student,on_delete=models.CASCADE)
    book_id = models.ForeignKey(Books,on_delete=models.CASCADE)
    issue_date = models.DateField(default=datetime.date.today)
    return_date = models.DateField(issue_date + datetime.timedelta(days=14))
    issuer = models.ForeignKey(CustomUser,on_delete=models.CASCADE)

How would I get it to work??

Upvotes: 0

Views: 903

Answers (1)

Reza Heydari
Reza Heydari

Reputation: 1211

You must override save method or using signals

def save(self, *args, **kwargs):
    self.return_date = self.issue_date + datetime.timedelta(days=14)
    super(Issue, self).save(*args, **kwargs)

Upvotes: 1

Related Questions