Django cli打印正确的追溯

时间:2017-06-12 14:32:59

标签: python django

我正在尝试让Django打印出错误的回溯而不是它选择的错误:

class Comand(BaseCommand):
    ...
    def handle(self, *args, **options):
        try:
            ...
        except:
            e, c, b = sys.exc_info()
            traceback.print_tb(b) # <-- this prints what I want
            raise CommandError, 'message', b # <-- this results in wront traceback

换句话说,我希望在manage.py被调用时这样:

./manage.py command --traceback

打印的回溯将是实际错误中的一个,而不是Django。

我无法找到Django打印它打印的实际消息的位置。

好的,找到了相关的Django代码:

def run_from_argv(self, argv):
    ...
    try:
        self.execute(*args, **cmd_options)
    except Exception as e:
        if options.traceback or not isinstance(e, CommandError):
            raise

为什么这不会保留我的回溯?

0 个答案:

没有答案