Изменение булева значения через определенное время

Я создаю BlogApp и пытаюсь установить Boolean Field в False через 10 минут, поэтому создал function в models.py для изменения булевых значений, которые старше 10 минут.

Но функция в models.py не работает, она не изменяет булево значение через 10 минут.

import datetime
from django.utils import timezone
from datetime import timedelta

class Question(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=30,default='')
    body = models.CharField(max_length=30,default='')
    date_added = models.DateTimeField(auto_now_add=True)
    is_old = models.BooleanField(default=False)


#Function to change Boolean Value to False after 10 minutes
    def active(self):
        now = timezone.now()
        if date_added < timezone.now() - timedelta(minutes=10):
            is_bountied = False
            self.save()

Я не использую в представлениях

Что я пробовал?

Я следовал ответам на THIS вопрос и создал celery task, но он не работает, не показывает никаких ошибок.

Чем я только не пробовал :-

@property
def active(self):
    return self.date_added >timezone.now() - timedelta(minutes=10)

def __init__(self):
    super().__init__()
    self.active = self.end_date > datetime.datetime.utcnow()

НО он также не обновил поле.

Поле по-прежнему не изменяется и не сохраняется.

Любая помощь будет очень признательна. Thank You in Advance.

  • Если вы хотите проверить, старше ли пост на 10 минут или нет, вы можете поддерживать поле created_at в модели.
  • При получении documents вы можете искать created_at >= current_time + 10 minutes)
  • .
Вернуться на верх