如何解决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 subparser 看起来很有前途,但我觉得应该有更简单的方法在 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。