开发者

Django: Can't run custom commands

I've written a simple custom command, hello.py:

from django.core.management.base import NoArgsCommand

class Command(NoArgsCommand):
    help = "prints hello world"

    def handle_noargs(self, **options):
        print "Hello, World!"

When I run python manage.py hello it returns

Unknown command: 'hello'

  • I've put it in the management/commands directory beneath my app.
  • I've added __init__.py files to the management and commands directory.
  • I've checked my app is in INSTALLED_APPS in settings.py
  • I've tried installing it in different apps and from the project root too

Running python manage.py syncdb etc is fine. And if I type python at the command line I can import django.core.management ok.

I know I'm missing somethin开发者_运维技巧g obvious, but can't figure out what.

How can I debug this to work out why my custom command won't run?


The problem was that I had another project on my PYTHONPATH. D'oh! I think it was picking up the settings.py from there first so didn't see my app. What pointed me in this direction was I tried running python manage.py create_jobs myapp (from django command extensions) and it returned an error indicating the app couldn't be found. Also @knutin mentioned INSTALLED_APPS.


It is because the __init__.pyc does not get created automatically within "management" and "commands" folder. Copy your_app/__init__.py and your_app/__init__.pyc and paste it within the management/ and commands/ folder.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜