![](/img/trans.png)
[英]How to delete all records which is 24 hours old using django ORM?
[英]Using Django ORM, Iterate through table records, test them and delete the record if needed
您將如何使用Django ORM遍歷表,並測試datetime字段以查看它們是否存在8天,如果它們為True,則將其刪除。
# models.py
from django.db import models
class Tweet(models.Model):
tweet_id = models.Charfield()
tweet_date = models.DatetimeField()
# tasks.py
from celery import shared_task
from datetime import datetime, timedelta
@shared_task(name='cleanup')
def cleanup():
tweets = MyModel.objects.all()
for tweet.tweet_date in tweets:
if tweets.tweet_date <= datetime.now() - timedelta(days=8):
# remove this record from the table
您可以使用lte
直接在數據庫中查詢8天以上的舊tweets
並刪除生成的tweets
。 無需遍歷結果,然后逐個刪除所有結果。
@shared_task(name='cleanup')
def cleanup():
# filter and delete more than 8 days old tweets
Tweet.objects.filter(tweet_date__lte=datetime.now()-timedelta(days=8)).delete()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.