web-dev-qa-db-ja.com

'required'は、pythonコマンドの定位置の無効な引数です

この方法でこれを実行するには、必須およびオプションのパラメーターを使用してインポート機能を実装します。

python manage.py import --mode archive

どこ --modeは必須で、archiveも必要です。

Argparseライブラリを使用しています。

class Command(BaseCommand):
    help = 'Import'

    def add_arguments(self, parser):
        parser.add_argument('--mode',
            required=True,
        )
        parser.add_argument('archive',
            required=True,
            default=False,
            help='Make import archive events'
        )

しかし、私はエラーを受け取りました:

TypeError: 'required' is an invalid argument for positionals
12
Kai

位置引数を作成しました(名前の前に--オプションはありません)。位置引数はalways必須です。このようなオプションにrequired=Trueを使用することはできません。単にrequiredをドロップしてください。 defaultもドロップします。必須の引数にデフォルト値を設定することはできません(とにかく使用されることはありません):

parser.add_argument('archive',
    help='Make import archive events'
)

archiveをコマンドラインスイッチにする場合は、代わりに--archiveを使用します。

17
Martijn Pieters

--mode archiveは「モードはアーカイブ」を意味すると考えられます。つまり、archiveは、個別の引数ではなく、--mode引数のです。 。もしそうなら、それは--archiveでなければなりません。

archiveの定義を省いてください。

2
BoarGules