传入设置时,使用shell脚本运行自定义django manage.py命令

时间:2016-06-21 20:39:10

标签: python linux django bash shell

使用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。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题可能在于INSTALLED_APPS列表。检查您的settings.py文件,确认my.namespace设置中包含INSTALLED_APPS