[英]Django update model fields after a certain time
我有一個 Assignment model,它目前具有以下屬性:title(char 字段)、deadline(日期和時間字段)、closed(boolean 字段)。 關閉字段表示作業是否已超過截止日期。 默認情況下,關閉字段為 false。 所以現在,我想要的是,當創建 model 的 object 時,關閉字段應根據截止日期自動更新。 假設截止日期是 2 小時后。 然后關閉字段應該在 2 小時后變為 true。 做這個的最好方式是什么? Django是否提供該類型的任何字段; 哪個會在一定時間后自行更新?
不要關閉一個字段。 使它成為一個計算屬性——然后一切都會自動運行:
from django.utils import timezone
from datetime import timedelta
def two_hours_from_now():
return timezone.now() + timedelta(seconds=2*3600)
class Assignment(models.Model):
deadline = models.DateTimeField(default=two_hours_from_now)
... # other fields, no closed field
@property
def closed(self) -> bool:
return timezone.now() < self.deadline
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.