Изменение булева значения через определенное время
Я создаю 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)
.