我有一长串具有字段的条目
date=models.DateTimeField(default=timezone.now)
此字段仅用作DateField,现在我将其更改为datetime。 迁移后,现有条目的默认小时设置为midgnig(00)。我想更新所有条目到上午9点。
我想要这样的事情:
Entry.objects.all().update(date__hour=9)
但这不起作用,因为它引发和例外:
django.core.exceptions.FieldDoesNotExist:条目没有名为'date__hour'的字段
有什么建议吗? 感谢
编辑1:列表条目很大,超过100万条目。因此,我想要一个数据库批量更新,而不是逐个解决方案。
答案 0 :(得分:3)
我现在没有项目要测试。但你能尝试这样吗。
for e in Entry.objects.all():
e.date += timedelta(0, 9*3600)
e.save()
上面的内容将在每个对象的00小时内完成。但是如果你想用9 AM静态替换日期对象,它们在每个日期对象中具有不同的值。你可以这样做。
for e in Entry.objects.all():
e.date = e.date.replace(hour=9)
e.save()
希望这能解决你的问题。