[英]Nested management commands in Django
無論如何在 Django 中創建嵌套管理命令,類似於docker
和kubectl
有什么? 例如,假設我需要具有以下結構:
|-->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.