【问题标题】:Management function in Django app complains it needs "handle()" function even though it has oneDjango 应用程序中的管理功能抱怨它需要“handle()”功能,即使它有一个
【发布时间】:2014-09-09 14:40:20
【问题描述】:

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

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

【问题讨论】:

  • 添加 add_arguement 函数后我遇到了同样的问题。

标签: django django-manage.py


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      相关资源
      最近更新 更多