Fixed #5082 -- Enabled tab completion in 'django-admin.py shell' for objects that were imported into the global namespace at runtime. Thanks, dusk@woofle.net
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5809 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
89d4a56594
commit
e301d8992c
1
AUTHORS
1
AUTHORS
|
@ -96,6 +96,7 @@ answer newbie questions, and generally made Django that much better:
|
|||
Maximillian Dornseif <md@hudora.de>
|
||||
Jeremy Dunck <http://dunck.us/>
|
||||
Andrew Durdin <adurdin@gmail.com>
|
||||
dusk@woofle.net
|
||||
Andy Dustman <farcepest@gmail.com>
|
||||
Clint Ecker
|
||||
enlight
|
||||
|
|
|
@ -1300,6 +1300,10 @@ def run_shell(use_plain=False):
|
|||
shell.mainloop()
|
||||
except ImportError:
|
||||
import code
|
||||
# Set up a dictionary to serve as the environment for the shell, so
|
||||
# that tab completion works on objects that are imported at runtime.
|
||||
# See ticket 5082.
|
||||
imported_objects = {}
|
||||
try: # Try activating rlcompleter, because it's handy.
|
||||
import readline
|
||||
except ImportError:
|
||||
|
@ -1308,8 +1312,9 @@ def run_shell(use_plain=False):
|
|||
# We don't have to wrap the following import in a 'try', because
|
||||
# we already know 'readline' was imported successfully.
|
||||
import rlcompleter
|
||||
readline.set_completer(rlcompleter.Completer(imported_objects).complete)
|
||||
readline.parse_and_bind("tab:complete")
|
||||
code.interact()
|
||||
code.interact(local=imported_objects)
|
||||
run_shell.args = '[--plain]'
|
||||
|
||||
def dbshell():
|
||||
|
|
Loading…
Reference in New Issue