使用django 1.5
我希望在我传入设置时使用shell脚本运行自定义django manage.py命令(即不使用同一目录中的设置)。
作为传递我的设置的示例,如果我运行我的django开发服务器,我就这样做:
python manage.py runserver ip:port --settings=my.namespace.settings
在我的manage.py文件所在的目录中,我有我的shell脚本:myscript
myscript的当前内容:
#!/bin/bash
./manage.py shell --settings=my.namespace.settings
在myscript
目录中,正在运行./myscript
确实为我提供了具有正确应用设置上下文的django shell(我已通过自定义变量验证了{{} 1}},在我的应用设置中,它通过TEST_VAR
> from django.conf import settings
)在django shell中正确输出。
现在我更改settings.TEST_VAR
以运行我的自定义命令:
myscript
我followed these instructions创建自定义django命令。
我的目录结构如下:
#!/bin/bash
./manage.py custom_command --settings=my.namespace.settings
PROMPT: Unknown command: 'custom_command'
custom_command.py:
my.namespace
__init__.py // & other django app files/dirs
management // directory
__init__.py
commands // directory
__init__.py
custom_command.py
再次,运行from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
args = 'test'
help = 'test help'
def handle(self, *args, **kwargs):
print 'test'
会给我myscript
。有什么想法吗?
答案 0 :(得分:1)
问题可能在于INSTALLED_APPS
列表。检查您的settings.py
文件,确认my.namespace
设置中包含INSTALLED_APPS
。