您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 在django中自动删除超过10天的数据

5b51 2022/1/14 8:21:48 python 字数 3950 阅读 552 来源 www.jb51.cc/python

在我的django项目中,我想自动删除超过10天的数据.我怎么写这个观点?它如何自动执行?在我的模型中有一个post_date字段,我想通过它检查它是否是10天.model.py:class CustomerLeads(models.Model): title = models.CharField(max_length=100, null=True, bla

概述

在我的django项目中,我想自动删除超过10天的数据.

我怎么写这个观点?它如何自动执行?

在我的模型中有一个post_date字段,我想通过它检查它是否是10天.

model.py:

class CustomerLeads(models.Model):
title = models.CharField(max_length=100,null=True,blank=True)
budget = models.IntegerField(default=0,blank=True)
posting_date = models.CharField(max_length=300,blank=True)
quantity = models.IntegerField(default=1,blank=True)

我怎么能得到差异天.我从当前日期获得2016-12-15< type'datetime.date'>我的发布日期值是2016年12月12日< type'unicode'>

提前致谢.

在python文件中编写代码并将其放在cron中以便在特定时间每天运行.在程序中查找超过10天的对象并删除它们用于您的用例.

之为dateiff不适合您的原因是因为您使用字符字段在代码中存储当前日期时间.将posting_date的字段类型更改为django datetime字段. Link

posting_date = models.DateTimeField(auto_Now_add=True)

添加管理程序.这将是这样的:

# purge_old_data.py

from django.core.management.base import BaseCommand,CommandError
from cus_leads.models import CustomerLeads 
from datetime import datetime,timedelta

class Command(BaseCommand):
    help = 'Delete objects older than 10 days'

    def handle(self,*args,**options):
        CustomerLeads.objects.filter(posting_date__gte=datetime.Now()-timedelta(days=10)).delete()
        self.stdout.write('Deleted objects older than 10 days')

如何运行此命令:

python 
  

我假设的项目结构:

cus_leads/
    __init__.py
    models.py
    management/
        __init__.py
        commands/
            __init__.py
            purge_old_data.py
    tests.py
    views.py


但是,我建议你不要删除对象.而是将字段添加为is_deleted,并在10天后将其设置为true.这将有助于您进行分析.

另外@ e4c5指出:

You should delete it or move to an archive table because boolean
columns cannot be indexed effectively and this is going to slow down
your DB over time.

总结

以上是编程之家为你收集整理的python – 在django中自动删除超过10天的数据全部内容,希望文章能够帮你解决python – 在django中自动删除超过10天的数据所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶