Поле 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