from django.core.management.base import BaseCommand class Command(BaseCommand): def add_arguments(self, parser): group = parser.add_mutually_exclusive_group(required=True) group.add_argument('--foo-id', type=int, nargs='?', default=None) group.add_argument('--foo-name', type=str, nargs='?', default=None) group.add_argument('--foo-list', type=int, nargs='+') group.add_argument('--append_const', action='append_const', const=42) group.add_argument('--const', action='store_const', const=31) group.add_argument('--count', action='count') group.add_argument('--flag_false', action='store_false') group.add_argument('--flag_true', action='store_true') def handle(self, *args, **options): for option, value in options.items(): if value is not None: self.stdout.write('%s=%s' % (option, value))