我正在构建一个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)