如何使用django ORM删除所有24小时前的记录



型号:

class Question(models.Model):
question_text = models.CharField(max_length=100)
option1 = models.CharField(max_length=50,null=False)
option1_vote = models.IntegerField(default=0)
option2 = models.CharField(max_length=50,null=False)
option2_vote = models.IntegerField(default=0)
option3 = models.CharField(max_length=50,null=False)
option3_vote = models.IntegerField(default=0)
option4 = models.CharField(max_length=50,null=False)
option4_vote = models.IntegerField(default=0)
date_time = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User,on_delete=models.CASCADE)

这里有date_time字段。

Question.objects.filter(condition).delete()

我应该在那里放什么条件?

您可以使用Pythontimedelta

from datetime import datetime, timedelta
last_24h = datetime.now() - timedelta(hours=24)
Question.objects.filter(date_time__lte=last24h).delete()

您可以使用函数库中的timedelta()Now()

试试这个:

from datetime import timedelta
from django.db.models.functions import Now
Question.objects.filter(date_time__lte=Now()-timedelta(days=1)).delete()

最新更新