Django app中的管理功能抱怨它需要“handle()”函数,即使它有一个

时间:2014-09-09 14:40:21

标签: django django-manage.py

我正在尝试编写一个非常简单的管理功能,通过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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我遇到了这个问题,因为我在子类中调用了super。在执行此操作时,您将调用超类的handle函数,该函数抱怨它需要被覆盖。啊。哑巴。