我正在尝试编写一个非常简单的管理函数,它通过 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
上面有个handle方法——问题出在哪里?
最佳答案
我有同样的问题 - 检查你的缩进。 def handle() 必须是在命令子类中声明的函数。如果它缩进了,你会得到错误,因为——事实上——你的 handle() 函数不存在于正确的词法级别。
关于django - Django 应用程序中的管理函数提示它需要 "handle()"函数,即使它有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747489/