1

无论如何在 Django 中创建嵌套管理命令,类似于dockerandkubectl有什么?例如,假设我需要具有以下结构:

|-->manage.py
    |-->restaurant
        |-->list
        |-->get
    |-->employee
        |-->list
        |-->get
        |-->delete

以下命令应该都是可能的:

./manage.py -h
./manage.py restaurant -h
./manage.py restaurant list
./manage.py employee list
./manage.py restaurant get ""
./manage.py employee delete tiffany

argparse子解析器看起来很有希望,但我觉得应该有一种更简单的方法在app/management/commands或类似的东西中使用 python 模块。

4

1 回答 1

0

您可以为此添加一个参数。

from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):

    def add_arguments(self, parser):
        parser.add_argument('command_type', type=str)

    def handle(self, *args, **options):
        command_type = options['command_type']
        if command_type == 'list':
            # list command
            return
        elif command_type == 'get':
            # get command
            return
        raise CommandError('Invalid arguemnt for command_type')

用法:

py manage.py my_command get
py manage.py my_command list
于 2021-03-10T08:45:05.223 回答