2012-03-27 55 views
2

最近我学到了Werkzeug's interactive debugger的组合django_extensions来调试Django Python代码和./manage.py runserver_plus如何调试django模板?

但是,您如何在模板内进行调试?如果我在模板中添加一些像{{ yasdasdasf }}这样的乱码,那么Django会默默地忽略它。更令人讨厌的是,当你期望某些东西出现在模板中时,但这并不是因为出现错误。

我觉得我读有关使用{{ debug }}模板内或TEMPLATE_STRING_IF_INVALIDsettings.py一些解决方案,但似乎像很多的“打开或关闭”为您想调试或模板中进行检查一番每次。

回答

3

你可以做一个崩溃模板过滤器:

@register.filter 
def crash(request): 
    crash_here 

所以{{ request|crash }}应该抛出一个异常,因为crash_here是没有定义的,你应该能够调试它在WERKZEUG。

+0

嗯,我不知道。首先'assert False'会比输入一个未定义的变量名称更好。其次,这只会显示关于Python代码的调试信息,而不是模板。第三,我不必创建一个'templatetags'文件夹,通过模板内的{%load something%}'加载自定义过滤器,然后在我认为错误发生的地方输入'{{request | crash}}'' ?有更简单的解决方案吗?我不介意只用于模板的IDE(但宁愿现在)。也许我应该使用[Pycharm](http://www.jetbrains.com/pycharm/whatsnew/)? – hobbes3 2012-03-27 19:03:42