I wanted to show the number of days (0 day, -2 days, 3 days etc) for the Integer field "Days Left".
Assuming today date is 09-06-2025(DD-MM-YYYY), this is how the result is showing up in the view. The problem here is that the result is empty(not showing up) when the dates difference is equal to 0 Day.
Product Name-----Expiry Date-----Days Left
Product 1 ---------07-06-2025------ -2
Product 2 --------09-06-2025 ------ (empty)
Product 3 ---------12-06-2025 ------- 3
Compute function for "Days Left"
class Drug(models.Model):
_inherit = "product.template"
expiry_date = fields.Date(string="Expiry Date")
due = fields.Integer(string="Days Left", compute="_compute_due")
def _compute_due(self):
for record in self:
if record.expiry_date:
fmt = '%Y-%m-%d'
from_date = record.expiry_date.strftime(fmt)
today_date = date.today()
if today_date == record.expiry_date:
record.due = 0
else:
now = today_date.strftime(fmt)
d1 = datetime.strptime(from_date, fmt)
d2 = datetime.strptime(now, fmt)
print(from_date, today_date, now, d1, d2)
record.due = str((d1 - d2).days)
else:
record.due = ""
Thank you for your suggestion!