簡體   English   中英

Django 中的嵌套管理命令

[英]Nested management commands in Django

無論如何在 Django 中創建嵌套管理命令,類似於dockerkubectl有什么? 例如,假設我需要具有以下結構:

|-->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 模塊。

您可以為此添加一個參數。

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

暫無
暫無

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

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