【问题标题】:Why is pdb.set_trace() not working in a templatetag definition?为什么 pdb.set_trace() 在模板标签定义中不起作用?
【发布时间】:2012-02-10 13:40:53
【问题描述】:

我写了一个模板标签来解决特殊表单的重复创建。逻辑上有一些问题,所以我插入了 pdb.set_trace() 以找到它的根源。但奇怪的是,当我调用模板标签时,这个 set_trace() 似乎从未被执行过。标签如下所示:

@register.tag('get_loop_form')
def get_loop_form(parser,token):

    import pdb;pdb.set_trace()

    #put some logic here

    return GetLoopForm()

我只是在模板中这样称呼它:

{% get_loop_form %}

通常,当我这样做时,我有机会在 set_trace() 行与脚本进行交互。当我将 set_trace() 插入 GetLoopF​​orm.render 方法时,它可以工作,但当我将其插入 get_loop_form 时却不行。为什么不呢?

edit:手动重新启动 Django 开发服务器,导致上面的代码正常工作。我还是不明白为什么会这样。

【问题讨论】:

  • 您是否尝试重新启动运行服务器?由于它是一个模板标签,它可能会在服务器启动时被缓存。
  • 另外,不相关,但您可能想使用 ipdb 而不是 pdb。您需要先 pip install ipdb。
  • 啊,好的。是 chached 模板标签然后。将此作为答案发布,我会接受。

标签: python django templatetags


【解决方案1】:

由于它是一个模板标签,它可能会在服务器启动时被缓存。尝试重新启动服务器,应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2014-01-28
    • 2022-08-10
    • 1970-01-01
    • 2018-03-22
    • 2018-05-05
    相关资源
    最近更新 更多