django - Django 应用程序中的管理函数提示它需要 "handle()"函数,即使它有一个

标签 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

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

最佳答案

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

关于django - Django 应用程序中的管理函数提示它需要 "handle()"函数,即使它有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747489/

相关文章:

python - 为什么 django rest 框架返回无效的 JSON 响应?

database - Django 模型加入一对多关系以在模板中显示

Django 管理.py : Is it possible to pass command line argument (for unit testing)

Django管理命令: using LabelCommand

python - Django的manage.py显示旧命令

python - 为什么pytest-django找不到manage.py?

python - 改变了 Django 模型。我为 DateField 提供了一次性的 default = datetime.date。发现无效。去掉了字段还是不能迁移

django-rest-auth 通过访问 token 进行谷歌社交身份验证

python - Django 管理服务器在 127.0.0.1 :<port>/admin/URL is hit 时关闭

python - manage.py 标志强制执行无人值守命令?