【发布时间】: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() 插入 GetLoopForm.render 方法时,它可以工作,但当我将其插入 get_loop_form 时却不行。为什么不呢?
edit:手动重新启动 Django 开发服务器,导致上面的代码正常工作。我还是不明白为什么会这样。
【问题讨论】:
-
您是否尝试重新启动运行服务器?由于它是一个模板标签,它可能会在服务器启动时被缓存。
-
另外,不相关,但您可能想使用 ipdb 而不是 pdb。您需要先 pip install ipdb。
-
啊,好的。是 chached 模板标签然后。将此作为答案发布,我会接受。
标签: python django templatetags