def METHOD_NAME(self, *args, **options):
    user_data = {}
    # Do quick and dirty validation if --noinput
    if not options.get('interactive', True):
        # Stolen from django's `createsuperuser` implementation.
        try:
            for field_name in self.required_fields:
                if options.get(field_name, None):
                    field = self.UserModel._meta.get_field(field_name)
                    user_data[field_name] = field.clean(options[field_name], None)
                else:
                    raise CommandError(
                        'You must use --%s with --noinput.' % field_name
                    )
        except exceptions.ValidationError as exc:
            raise CommandError('; '.join(exc.messages))
    else:
        user_data = {
            field_name: self.get_value(field_name)
            for field_name in self.required_fields
        }
    if options.get('fxa_id', None):
        field = self.UserModel._meta.get_field('fxa_id')
        user_data['fxa_id'] = field.clean(options['fxa_id'], None)
    user = get_user_model()._default_manager.create_superuser(**user_data)
    if options.get('add_to_supercreate_group', False):
        user.read_dev_agreement = datetime.utcnow()
        user.save(update_fields=('read_dev_agreement',))
        group, _ = Group.objects.get_or_create(
            rules='Accounts:SuperCreate',
            defaults={'name': 'Account Super Creators'},
        )
        GroupUser.objects.create(user=user, group=group)
        apikey = APIKey.new_jwt_credentials(user=user)
        self.stdout.write(
            json.dumps(
                {
                    'username': user.username,
                    'email': user.email,
                    'api-key': apikey.key,
                    'api-secret': apikey.secret,
                    'fxa-id': user.fxa_id,
                }
            )
        )