{{{
% DJANGO_AUTO_COMPLETE=1 COMP_WORDS="manage.py shell_plus " COMP_CWORD=2
python manage.py
Traceback (most recent call last):
File "…/project/bin/manage.py", line 8, in <module>
execute_from_command_line(sys.argv)
File "…/django18/django/core/management/__init__.py", line 351, in
execute_from_command_line
utility.execute()
File "…/django18/django/core/management/__init__.py", line 327, in
execute
self.autocomplete()
File "…/django18/django/core/management/__init__.py", line 264, in
autocomplete
options = sorted((k, v) for k, v in options if k.startswith(curr))
TypeError: unorderable types: NoneType() < bool()
}}}
The problem appears to be that for subcommands that do not use argparse,
`s_opt.nargs` does not get casted to a boolean:
{{{
if subcommand_cls.use_argparse:
options.extend((sorted(s_opt.option_strings)[0], s_opt.nargs != 0) for
s_opt in
parser._actions if s_opt.option_strings)
else:
options.extend((s_opt.get_opt_string(), s_opt.nargs) for s_opt in
parser.option_list)
}}}
The functions documentation says this:
Subcommand options are saved as pairs. A pair consists of
the long option string (e.g. '--exclude') and a boolean
value indicating if the option requires arguments. When printing to
stdout, an equal sign is appended to options which require arguments.
--
Ticket URL: <https://code.djangoproject.com/ticket/25372>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* has_patch: 0 => 1
* needs_tests: => 0
* needs_docs: => 0
Old description:
New description:
PR: https://github.com/django/django/pull/5253
--
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:1>
Comment (by MoritzS):
Can you provide a simple test case for this error?
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:2>
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:3>
* stage: Unreviewed => Ready for checkin
Comment:
As the issue is in deprecated code that will be removed in Django 1.10 and
seems unlikely to regress, I guess we can just commit the fix.
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:4>
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"acb833081dd3abca3bc62753103690f23fb3f0ec" acb83308]:
{{{
#!CommitTicketReference repository=""
revision="acb833081dd3abca3bc62753103690f23fb3f0ec"
Fixed #25372 -- Fixed autocompletion for options of non-argparse commands.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:5>
Comment (by Tim Graham <timograham@…>):
In [changeset:"6c19d819515cd9b03e02d195604056fea89e6a54" 6c19d81]:
{{{
#!CommitTicketReference repository=""
revision="6c19d819515cd9b03e02d195604056fea89e6a54"
[1.8.x] Fixed #25372 -- Fixed autocompletion for options of non-argparse
commands.
Backport of acb833081dd3abca3bc62753103690f23fb3f0ec from master
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/25372#comment:6>