Python 在指定时间后自动删除对象

Python 在指定时间后自动删除对象,python,django,django-rest-framework,Python,Django,Django Rest Framework,尝试在指定时间后从数据库中删除对象 这是我的密码: from datetime import timedelta from django.db import models from django.utils.timezone import now class Email(models.Model): email = models.EmailField(max_length=256) created_at = models.DateTimeField(auto_now_add=T

尝试在指定时间后从数据库中删除对象

这是我的密码:

from datetime import timedelta
from django.db import models
from django.utils.timezone import now

class Email(models.Model):
    email = models.EmailField(max_length=256)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return 'code: ' + str(self.code)

    @property
    def deletes_in_ten_seconds(self):
        time = self.created_at + timedelta(seconds=10)
        query = Email.objects.get(pk=self.pk)
        if time > now():
            query.delete()
但它不起作用。我是否必须在一段时间后调用delete方法?我真的一点头绪也没有。django新手

首先,在代码中永远不会调用“十秒内删除”,因此查询永远不会运行

其次,是的,当需要删除行时,您必须要求数据库删除行,因此您需要以某种方式每隔一段时间安排一次。有很多方法可以做到这一点:从python应用程序中的线程到使用数据库提供的功能。

首先,在代码中不会调用十秒钟内删除,因此查询永远不会运行


其次,是的,当需要删除行时,您必须要求数据库删除行,因此您需要以某种方式每隔一段时间安排一次。有很多方法可以做到这一点:从python应用程序中的线程到使用数据库提供的功能。

为此,您需要安排一个作业

也许你想用芹菜做这个

此处的文档:


您好,

您需要为此安排一份工作

也许你想用芹菜做这个

此处的文档:

问候您,

从datetime导入timedelta 从django.db导入模型 从django.utils.timezone立即导入 类模型。模型: email=models.EmailFieldmax_length=256 已创建\u at=models.DateTimeFieldDauto\u now\u add=True 定义自身: 返回“code:”+strself.code @财产 def在十秒钟内删除自己: 时间=自创建时间+时间增量秒=10 query=Email.objects.getpk=self.pk 添加此代码 尽管如此: 如果时间>现在: query.delete 打破 当执行deletes_in_ten_seconds时,if语句不满足,因此它不需要进一步判断就退出。因此,您必须添加一个while循环,使其在query.delete出现之前一直运行。

来自datetime import timedelta 从django.db导入模型 从django.utils.timezone立即导入 类模型。模型: email=models.EmailFieldmax_length=256 已创建\u at=models.DateTimeFieldDauto\u now\u add=True 定义自身: 返回“code:”+strself.code @财产 def在十秒钟内删除自己: 时间=自创建时间+时间增量秒=10 query=Email.objects.getpk=self.pk 添加此代码 尽管如此: 如果时间>现在: query.delete 打破
当执行deletes_in_ten_seconds时,if语句不满足,因此它不需要进一步判断就退出。因此,您必须添加一个while循环,使其在query.delete出现之前一直运行。

谢谢。您介意详细介绍一下调用delete方法的其中一种方法吗?如果您也能为它编写代码示例,那将非常有帮助。在这里,您已经讨论了这个问题哦,谢谢。您介意详细介绍一下调用delete方法的其中一种方法吗?如果您也能为它编写代码示例,那将非常有帮助