我有一些代码有时会从命令行运行(django 管理命令),有时不会(django changelist 操作)。在此代码中,如果引发某个异常,我可以获得一些用户输入并在命令提示符 (stdin) 可用的情况下继续操作。否则,我需要让异常传播或做一些不同的事情。
例如
def copy_account_settings(old_acct_domain, new_acct_domain):
try:
new_account = Account.objects.get(domain = new_acct_domain)
except Account.DoesNotExist:
print ("Couldn't find an account matching %s." % new_acct_domain)
if <command prompt is available>:
print "Would you like to create the account? (y/n)"
if raw_input().lower().strip()='y':
# get some more input and create the account and move on
else:
raise
你会怎么做?