Поле Boolean не обновляется со временем

Я создаю приложение для блога и пытаюсь скрыть записи блога, которые старше семи дней, поэтому я показываю записи блога, которые новее 7 дней. Тогда я думаю, что могу обновить boolean если пост старше 7 дней.

Я сделал функцию в моделях для обновления поля через семь дней.

BUT Поле не обновляется.

models.py

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

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

    def active(self):
        now = timezone.now()
        # changed 15 seconds for testing
        if date_added > timezone.now() - timedelta(seconds=15):
            is_older = False

Когда кто-то публикует записи в блоге, булево значение сохраняется в true, и я пытаюсь установить значение False после 7 days.

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

Необходимо сохранить изменения с помощью метода save().

def active(self):
    now = timezone.now()
    # changed 15 seconds for testing
    if self.date_added > timezone.now() - timedelta(seconds=15):
        is_older = False
        self.save()

если вы не хотите сохранять в базе данных, вы можете создать свойство

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

Так, когда у вас есть объект BlogPosts, вы можете вызвать свойство active

blog_post = BlogPosts.objects.first() 
print(blog_post.active) # this will print True or False
Вернуться на верх