簡體   English   中英

如何遍歷Django管理命令* args?

[英]How can I loop through Django management command *args?

我有以下代碼:

class Command(BaseCommand):
    help = 'Build static site output.'

    def add_arguments(self, parser):
        parser.add_argument('args')

    def handle(self, *args, **options):
        """Request pages and build output."""
        if args:
            pages = args
            available = list(get_pages())
            invalid = []
            for page in pages:
                if page not in available:
                    invalid.append(page)
            if invalid:
                msg = 'Invalid pages: {}'.format(', '.join(invalid))
                raise CommandError(msg)
        else:
            ...

但是,當我運行此命令時:

python prototypes.py build index

該命令循環遍歷單詞index每個字母。

CommandError: Invalid pages: i, n, d, e, x

我希望它將index檢測為一個參數,如果我提供更多的參數,並且它們之間有空格,則應該循環遍歷這些參數。

如果我不添加add_arguments方法,它將在控制台中顯示unrecognized argument

這種方法解決了我的問題。

def add_arguments(self, parser):
    parser.add_argument('args', nargs='+')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM