自定义django-admin命令 - 找不到方法

时间:2016-08-31 21:41:44

标签: django python-3.x

在运行django-admin命令时 - 它无法找到本地方法。

update.py

class Command(NoArgsCommand):
    help = 'Help Test'
    def handle(self, **options):
        test1 = 'hello'
        doThis()

    def doThis():
        test2 = 'hello'

运行命令python3 manage.py update会产生错误:

File "/opt/dir/app/management/commands/updatefm.py", line 25, in handle
        doThis()
    NameError: name 'doThis' is not defined

我无法在文档https://docs.djangoproject.com/en/1.7/howto/custom-management-commands/#methods

中找到理由

1 个答案:

答案 0 :(得分:0)

有关Python如何处理类和对象的两件事情。

Command.handle正在从同一个班级调用方法doThis,因此您应该使用self

def handle(self, **options):
    test1 = 'hello'
    self.doThis()

然后您应该更改doThis的签名,以便Python可以将其用作类Command的方法:

def doThis(self):
    test2 = 'hello'