xxxxxxxxxx
from django.db import models
class ToDoManager(models.Manager):
def active(self):
return self.excude(end__lt=today().date)
def expired(self):
return self.filter(end__lt=today().date)
class ToDo(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
todo = models.CharField(max_length=50)
description = models.TextField(max_length=200, blank=True)
created = models.DateField(auto_now=True)
end = models.DateField()
start = models.DateField()
completed = models.BooleanField(default=False)
objects = ToDoManager()
def __str__(self):
return f'{self.owner} - {self.todo}'
Note: You need to use Celery Beat as a scheduler.
xxxxxxxxxx
import datetime
def expired_activity():
today = datetime.date.today()
expired_activity = ToDo.objects.filter(end=today)
if expired_activity:
expired_activity.update(completed=True)