ブール値のフラグと、コマンドの n 引数のオプションが必要です。望ましい使用例:
python manage.py my_command --all # Execute my_command with all id's
python manage.py my_command --ids id1 id2 id3 ... # Execute my_command with n ids
python manage.py my_command --all --ids id1 id2 id3 ... # Throw an error
私の関数は現在次のようになっています (関数の本体には、両方が提供されている場合にエラーをスローするロジックもあります):
@my_command_manager.option("--all", dest="all_ids", default=False, help="Execute for all ids.")
@my_command_manager.option("--ids", dest="ids", nargs="*", help="The ids to execute.")
def my_command(ids, all_ids=False): #do stuff
これは --ids オプションで機能しますが、 --all オプションでは次のようになりますerror: argument --all: expected one argument
。
TLDR: オプションとコマンドの両方を使用するにはどうすればよいですか?