I am trying to add some arguments to my django command. My command will be executing a sql query and I'd like to have an optional argument --first_row and if --first_row is specified the user must specify a second argment --last_row.
Here is what I have tried:
from django.core.management.base import BaseCommand, CommandError
import time
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument('--first_row', type=int)
parser.add_argument('--last_row', type=int)
def handle(self, *args, **options):
import argparse
parser = argparse.ArgumentParser()
self.add_arguments(parser)
start = time.time()
args = parser.parse_args()
if args.first_row:
print "first row is %d" % (args.first_row)
end = time.time()
self.stdout.write(self.style.SUCCESS("Operation took %d seconds" % (end-start)))
But when I run my command I get this output:
manage.py > query_db --first_row 1 --last_row 5
usage: manage.py [-h] [--first_row FIRST_ROW] [--last_row LAST_ROW]
manage.py: error: unrecognized arguments: query_db
Process finished with exit code 2
What am I doing wrong?