我正在尝试编写一个非常简单的管理功能,通过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
上面有一个句柄方法 - 问题出在哪里?
答案 0 :(得分:0)
我有同样的问题 - 检查你的缩进。 def handle()必须是在命令子类中声明的函数。如果它缩进,你就会得到错误,因为 - 事实上 - 你的handle()函数并不存在于正确的词汇层面。
答案 1 :(得分:0)
我遇到了这个问题,因为我在子类中调用了super
。在执行此操作时,您将调用超类的handle函数,该函数抱怨它需要被覆盖。啊。哑巴。