django - DateField 过期后 Django 更改 BooleanField 值
问题描述
我希望能够在 end_suspension_date 经过(因此如果它存在)时自动将暂停设置为 False(当然,如果是 True)。
模型.py
class Profile(models.Model):
suspended = models.BooleanField(default=False)
start_suspension_date = models.DateField(null=True, blank=True)
end_suspension_date = models.DateField(null=True, blank=True)
# ... other fields
没有第三方应用程序有没有办法做到这一点?我想在模型中定义一个函数(但我认为这样做没有多大意义):
def end_suspension(self):
if date.today() >= self.end_suspension_date:
self.suspended = False
start_suspension_date = None
end_suspension_date = None
else:
# do nothing...
解决方案
你可以试试,比如:
class Profile(models.Model):
start_suspension_date = models.DateField(null=True, blank=True)
end_suspension_date = models.DateField(null=True, blank=True)
# ... other fields
@property
def suspended(self):
return date.today() < self.end_suspension_date
推荐阅读
- angular - CORS 策略已阻止对 XMLHttpRequest 的访问。请求的资源上不存在“Access-Control-Allow-Origin”标头
- apache-nifi - 如何配置 PutFile 使其按 24 小时计划运行,但运行时间与传入流文件的数量一样多
- svelte - 使用附加的 svelte 组件并在相同的 Javascript 上下文中创建窗口
- sql - 使用 LIKE 运算符或更好的方法连接 2 个表的最佳实践
- python - Flask 自定义装饰器
- ios - 在获取数据 Firebase / Swift 之前加载的 TableView
- r - R Markdown:在“参考”部分之后放置一个附录?
- android - 垂直网格支持片段在滚动时丢失位置
- python - 如何从使用 setItemWidget 设置的 QListWidgetItem 获取按钮信号?如何删除没有空格的 QListWidgetItem?
- go - 如何获取 Firestore 文档的 ID?