4

我正在尝试编写一个非常简单的管理函数,通过 Cronjob 检查“数据”模型实例的时间戳并删除超过 14 天的时间戳。我当前的功能如下所示:

class Command(BaseCommand):

    help = 'Delete data instances older than 14 days'

    def add_argument(self):
        pass

    def handle(self, *args, **options):
        time_threshold = datetime.now() - timedelta(days=14)
        to_delete = Data.objects.filter(timestamp__lt=time_threshold)
        for instance in to_delete:
            instance.delete()

当我收到投诉时,此命令一定有问题:

NotImplementedError: subclasses of BaseCommand must provide a handle() method

上面有个句柄方法——问题出在哪里?

4

2 回答 2

0

我遇到了这个问题,因为我super在子类中调用。当你这样做时,你调用了超类的句柄函数,它抱怨它需要被覆盖。啊。哑的。

于 2020-11-08T18:33:48.267 回答
0

我有同样的问题 - 检查你的缩进。def handle() 必须是在命令子类中声明的函数。如果它的缩进,你会得到错误,因为——事实上——你的 handle() 函数不存在于正确的词法级别。

于 2015-10-04T01:39:51.143 回答