gpt4 book ai didi

python - 使用当前日期调整 Django CharField 中的选择

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:03 25 4
gpt4 key购买 nike

我正在开发一个 Django 项目,其中我的 models.py 文件如下所示:

STATUS = (
('Active', 'Active'),
('Inactive', 'Inactive')
)

class ClassName(models.Model):
...
deadline = models.DateTimeField('Deadline')
status = models.CharField(max_length=10, choices=STATUS)

如果当前日期晚于输入的截止日期,我想要将状态从“事件”更改为“非事件”。有人知道我如何实现这个目标吗?

最佳答案

您可以覆盖 Model.save()调整相互依赖的字段的方法:

from django.utils import timezone

class ClassName(models.Model):
...
deadline = models.DateTimeField('Deadline')
status = models.CharField(max_length=10, choices=STATUS)

def save(self, *args, **kwargs):
if self.deadline < timezone.now():
self.status = 'Inactive'
super(ClassName, self).save(*args, **kwargs)

要修复以前创建的实例,您可以在 python shell 中执行以下操作:

ClassName.objects.filter(deadline__lt=timezone.now()).update(status='Inactive')

这会将截止日期小于 timezone.now() 的所有 ClassName 实例标记为非事件状态。

关于python - 使用当前日期调整 Django CharField 中的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com