Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django model calculated field to get number of days subtracting given date with system date

Am trying to generate a column value dynamically i.e calculate "number of days a demand is open from the day demand is requested", am trying to subtract requested date from system date to get the days directly in django model but not getting output below is the django model code any help please

from django.db import models
from datetime import datetime

Demand_Id = models.CharField(max_length=10, default='BLANK')`enter code here`
Requested_Date = models.DateField(default=datetime.now)
Days_Open = models.IntegerField(default=0)

@property
def get_Days(self):
    date_format = "%Y-%m-%d"
    sysdate = datetime.strptime(str(datetime.now().date()), date_format)
    odays = (sysdate - datetime.strptime((self.Requested_Date), date_format)).days
    return self.odays

@property   
def save(self, *args, **kwargs):
    self.Days_Open = self.get_Days()
    super(Demand_Master, self).save(*args, **kwargs)

def __str__(self):
    return self.Demand_Id
like image 886
Ramesh S Avatar asked Dec 02 '25 10:12

Ramesh S


1 Answers

Simply,

from django.utils import timezone


class Foo(models.Model):
    # rest of your code

    @property
    def get_Days(self):
        return (timezone.now() - self.Requested_Date).days
like image 179
JPG Avatar answered Dec 04 '25 01:12

JPG



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!