2012-03-27 54 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