自從升級到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