找不到django自定义命令

boc*_*cca 33 django

有问题让django自定义命令工作.

从django documetation,已经放置

application/
    manage.py
    blog/
        __init__.py
        models.py
        management/
            __init__.py
            commands/
                __init__.py
                myapp_task.py
        views.py
Run Code Online (Sandbox Code Playgroud)

myapp_task.py的内容是

from django.core.management.base import NoArgsCommand

class Command(NoArgsCommand):
    def handle_noargs(self, **options):
        print 'Doing task...'
        # invoke the functions you need to run on your project here
        print 'Done'
Run Code Online (Sandbox Code Playgroud)

跑的时候

python manage.py myapp_task
Run Code Online (Sandbox Code Playgroud)

得到错误

Unknown command: 'myapp_task'
Run Code Online (Sandbox Code Playgroud)

mik*_*iku 52

答案中的目录结构有点含糊不清; 放置文件时,如下django应该能够找到你的命令:

project/ # in your question this would be 'application'
    manage.py
    blog/
        __init__.py
        models.py
        management/
            __init__.py
            commands/
                __init__.py
                myapp_task.py
        views.py
Run Code Online (Sandbox Code Playgroud)

此外,您需要在以下位置启用您的应用settings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'blog', # <= your app here ...
)
Run Code Online (Sandbox Code Playgroud)

  • 文件列表的缩进仍然是关闭的. (2认同)
  • 帮帮我,我在管理/目录中缺少__init__.py. (2认同)