From 9c5ccb8c54208ae101fda7591fd34859a92a3b9e Mon Sep 17 00:00:00 2001 From: Corey Oordt Date: Thu, 12 Oct 2017 22:49:47 -0500 Subject: [PATCH] [-] Get management commands compatible with Django 1.10+ --- .../management/commands/add_category_fields.py | 9 ++++++--- .../management/commands/drop_category_field.py | 15 ++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/categories/management/commands/add_category_fields.py b/categories/management/commands/add_category_fields.py index 53daf58..4d44c4d 100644 --- a/categories/management/commands/add_category_fields.py +++ b/categories/management/commands/add_category_fields.py @@ -8,7 +8,10 @@ class Command(BaseCommand): help = "Alter the tables for all registered models, or just specified models" args = "[appname ...]" can_import_settings = True - requires_model_validation = False + requires_system_checks = False + + def add_arguments(self, parser): + parser.add_argument('app_names', nargs='*') def handle(self, *args, **options): """ @@ -17,8 +20,8 @@ class Command(BaseCommand): from categories.migration import migrate_app from categories.settings import MODEL_REGISTRY - if args: - for app in args: + if options['app_names']: + for app in options['app_names']: migrate_app(None, app) else: for app in MODEL_REGISTRY: diff --git a/categories/management/commands/drop_category_field.py b/categories/management/commands/drop_category_field.py index c9adddb..cc4850e 100644 --- a/categories/management/commands/drop_category_field.py +++ b/categories/management/commands/drop_category_field.py @@ -1,4 +1,5 @@ from django.core.management.base import BaseCommand +from django.core.management.base import CommandError class Command(BaseCommand): @@ -8,15 +9,19 @@ class Command(BaseCommand): help = "Drop the given field from the given model's table" args = "appname modelname fieldname" can_import_settings = True - requires_model_validation = False + requires_system_checks = False + + def add_arguments(self, parser): + parser.add_argument('app_name') + parser.add_argument('model_name') + parser.add_argument('field_name') def handle(self, *args, **options): """ Alter the tables """ - from categories.migration import drop_field - if len(args) != 3: - print("You must specify an Application name, a Model name and a Field name") + if 'app_name' not in options or 'model_name' not in options or 'field_name' not in options: + raise CommandError("You must specify an Application name, a Model name and a Field name") - drop_field(*args) + drop_field(options['app_name'], options['model_name'], options['field_name'])