From f05edb2b43c347d4929efd52c8e2b4e08839f542 Mon Sep 17 00:00:00 2001 From: Aman Sharma <210100011@iitb.ac.in> Date: Tue, 17 Dec 2024 14:00:33 +0530 Subject: Fixed #36016 -- Prevented traceback when quitting makemigrations with Ctrl-C. --- django/db/migrations/questioner.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'django') 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: -- cgit v1.3