From 34820a1233efccb914054dde1456da2a0d9af1a1 Mon Sep 17 00:00:00 2001 From: Dhaval Mehta <20968146+dhaval-mehta@users.noreply.github.com> Date: Tue, 26 May 2020 02:06:44 +0530 Subject: [PATCH] fix generateschema command --- rest_framework/management/commands/generateschema.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rest_framework/management/commands/generateschema.py b/rest_framework/management/commands/generateschema.py index 668501a30..3a8063b4e 100644 --- a/rest_framework/management/commands/generateschema.py +++ b/rest_framework/management/commands/generateschema.py @@ -28,7 +28,7 @@ class Command(BaseCommand): parser.add_argument('--urlconf', dest="urlconf", default=None, type=str) parser.add_argument('--generator_class', dest="generator_class", default=None, type=str) parser.add_argument('--file', dest="file", default=None, type=str) - parser.add_argument('--tag_objects', dest="tag_objects", default=None, type=dict) + parser.add_argument('--tag_objects', dest="tag_objects", default=None, type=str) def handle(self, *args, **options): if options['generator_class']: @@ -36,13 +36,17 @@ class Command(BaseCommand): else: generator_class = self.get_generator_class() - tag_objects = ast.literal_eval(options['tag_objects']) if options['tag_objects'] else None + kwargs = {} + if issubclass(generator_class, SchemaGenerator): + tag_objects = ast.literal_eval(options['tag_objects']) if options['tag_objects'] else None + kwargs['tag_objects'] = tag_objects + generator = generator_class( url=options['url'], title=options['title'], description=options['description'], urlconf=options['urlconf'], - tag_objects=tag_objects, + **kwargs, ) schema = generator.get_schema(request=None, public=True) renderer = self.get_renderer(options['format'])