我写了一个简单的自定义命令,hello.py:
from django.core.management.base import NoArgsCommand
class Command(NoArgsCommand):
help = "prints hello world"
def handle_noargs(self, **options):
print "Hello, World!"
当我运行python manage.py时,它返回
未知命令:'hello'
运行python manage.py syncdb等没问题。如果我在命令行输入python,我可以导入django.core.management ok。
我知道我遗漏了一些显而易见的东西,但无法弄清楚是什么。
我如何调试它以解决为什么我的自定义命令不会运行?
答案 0 :(得分:6)
问题是我在PYTHONPATH上有另一个项目。 D'哦!我认为它首先从那里拿起settings.py所以没有看到我的应用程序。我指向这个方向的是我尝试运行python manage.py create_jobs myapp(来自django命令扩展),它返回一个错误,指示无法找到应用程序。另外@knutin提到了INSTALLED_APPS。
答案 1 :(得分:-1)
这是因为__init__.pyc
并未在"管理中自动创建"和"命令"夹。
复制your_app/__init__.py
和your_app/__init__.pyc
并将其粘贴到management /和commands /文件夹中。