自从升级到Django 1.8后,我的Django管理命令中出现了一个奇怪的错误。Django管理命令看不到参数?
我运行它,如下所示:
python manage.py my_command $DB_NAME $DB_USER $DB_PASS
然后我收集的参数如下:
class Command(BaseCommand):
def handle(self, *args, **options):
print args
db_name = args[0]
db_user = args[1]
db_pass = args[2]
self.conn = psycopg2.connect(database=db_name, user=db_user,
password=db_pass)
以前,这工作得很好,但现在我看到这个错误:
usage: manage.py my_command [-h] [--version] [-v {0,1,2,3}]
[--settings SETTINGS]
[--pythonpath PYTHONPATH]
[--traceback] [--no-color]
manage.py my_command: error: unrecognized arguments: test test test
它甚至没有达到print args
声明。
如果我没有任何参数运行它,那么它在args[0]
行错误,毫不奇怪。
我使用args
这里错了吗?或者还在发生其他事情?
这是一个真实的案例吗? Django中已经有'dbshell'。你正在重新发明轮子。你可以用'python manage.py dbshell'调用DB命令行。 – cezar