diff options
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/migrations/questioner.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/django/db/migrations/questioner.py b/django/db/migrations/questioner.py index 2e61195581..445d4410e6 100644 --- a/django/db/migrations/questioner.py +++ b/django/db/migrations/questioner.py @@ -111,17 +111,19 @@ class InteractiveMigrationQuestioner(MigrationQuestioner): for i, choice in enumerate(choices): self.prompt_output.write(" %s) %s" % (i + 1, choice)) self.prompt_output.write("Select an option: ", ending="") - result = input() while True: try: + result = input() value = int(result) except ValueError: pass + except KeyboardInterrupt: + self.prompt_output.write("\nCancelled.") + sys.exit(1) else: if 0 < value <= len(choices): return value self.prompt_output.write("Please select a valid option: ", ending="") - result = input() def _ask_default(self, default=""): """ @@ -148,7 +150,11 @@ class InteractiveMigrationQuestioner(MigrationQuestioner): else: prompt = ">>> " self.prompt_output.write(prompt, ending="") - code = input() + try: + code = input() + except KeyboardInterrupt: + self.prompt_output.write("\nCancelled.") + sys.exit(1) if not code and default: code = default if not code: |
