特定时间后改变布尔值



我正在构建一个BlogApp,我试图在10分钟后将Boolean Field设置为False,因此在models.py中创建了function以更改大于10分钟的布尔值。

但是models.py中的函数不工作,它在10分钟后不改变布尔值。

import datetime
from django.utils import timezone
from datetime import timedelta
class Post(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()

我没有在视图中使用任何东西。

What have i try ?

我遵循这个问题的答案并创建了一个celery task,但它不工作,没有显示任何错误。

Than i try:-

@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()

但是它也没有更新字段

仍然没有更改或保存字段。

任何帮助都将非常感激。提前谢谢你。

  • 如果你想检查一个帖子是否早了10分钟,那么你可以在模型中维护一个字段created_at
  • 获取documents时,可以搜索created_at >= current_time + 10 minutes)

相关内容

  • 没有找到相关文章

最新更新