【发布时间】:2021-10-27 01:06:15
【问题描述】:
我正在构建一个 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()
我没有在视图中使用任何东西。
我尝试了什么?
我关注了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()
但它也没有更新该字段
它仍然没有更改或保存该字段。
任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
标签: python django django-models django-queryset