Функция Django Datetime

Я хочу, чтобы значение 'grade' увеличивалось на 1 25 числа каждого месяца. Приведенная ниже функция, похоже, не работает. Где я могу ошибиться? Прилагаю модель и функцию.

class Student(models.Model):
    student_name = models.CharField(max_length=100, null=True)
    extra_role = models.CharField(max_length=100, default='None', null=True)
    gender = models.CharField(max_length=20, choices = gender, default = "female")
    dob = models.DateField(null=True, blank=True)
    grade = models.IntegerField(choices=grade)
    parent_phone = PhoneField(blank=True, help_text='Contact phone number')
    # admNo = models.AutoField() 

    @property
    def age(self):
        if(self.dob != None):
            age = date.today().year - self.dob.year
            return age

    @property    
    def sgrade(self):
        if datetime.today().day == 25:
            grade = self.grade +1
            return grade

Попробуйте вот это :

def age(self):
    if(self.dob != None):
        today = datetime.datetime.today()
        return today.year - self.dob.year - ((today.month, today.day) < (self.dob.month, self.dob.day))

def sgrade(self):
    if datetime.datetime.now().day == 25:
        grade = self.grade +1
        return grade

Не забудьте импортировать datetime

Вернуться на верх