2012-04-03 12 views
2

私は理由を知りませんが、最近はJinjaのテンプレートレンダリングから得たトレースバック エラーは多かれ少なかれ無意味です。実際のエラーが テンプレートのほとんどを除去して、バグが破壊に対する開始すると見ているところ私のジンジャートレースバックは意味がありません?

Traceback (most recent call last): 
    File "/Users/me/my_project/app/distlib/tipfy/__init__.py", line 442, in wsgi_app 
    response = self.handle_exception(request, e) 
    File "/Users/me/my_project/app/distlib/tipfy/__init__.py", line 430, in wsgi_app 
    rv = self.dispatch(request) 
    File "/Users/me/my_project/app/distlib/tipfy/__init__.py", line 559, in dispatch 
    return handler(self, request)(method, **request.rule_args) 
    File "/Users/me/my_project/app/distlib/tipfy/__init__.py", line 165, in __call__ 
    response = method(*args, **kwargs) 
    File "/Users/me/my_project/app/my_package/admin/menus/editor.py", line 22, in get 
    return self.edit_week(menu, year, week_num, week_nums) 
    File "/Users/me/my_project/app/my_package/admin/menus/editor.py", line 44, in edit_week 
    return self.respond(data, context=ctx, template="admin/menus/edit.html") 
    File "/Users/me/my_project/app/my_package/lib/irender.py", line 182, in respond 
    return render(self, fmt, opts) 
    File "/Users/me/my_project/app/my_package/lib/irender.py", line 207, in __call__ 
    val = render_func(handler, **opts) 
    File "/Users/me/my_project/app/my_package/lib/irender.py", line 220, in render_html 
    return handler.render_template(self.template, ctx) 
    File "/Users/me/my_project/app/my_package/handlers.py", line 42, in render_template 
    return jinja2.get_template(template).render(accum) 
    File "/Users/me/my_project/app/distlib/jinja2/environment.py", line 894, in render 
    return self.environment.handle_exception(exc_info, True) 
    File "/Users/me/my_project/app/templates/admin/menus/edit.html", line 3, in top-level template code 
    {% import "admin/utils.html" as utils %} 
TypeError: integer argument expected, got float 

はもちろん、私は推測することができますが、それはダム開発 方法です。

トレースバックを再び有効にするにはどうすればよいですか?ところで

が、私は私のmain.pyで、次の呪文を持っている:この質問はすでにかなり古いですが

def whitelist_jinja2_debug_modules(): 
    from google.appengine.tools.dev_appserver import HardenedModulesHook 
    HardenedModulesHook._WHITE_LIST_C_MODULES += ['_ctypes', 'gestalt'] 

if app.dev: 
    whitelist_jinja2_debug_modules() 
+1

問題は、{{%import ...%}}によってインポートされたテンプレートにありました。 '{52%/ 13%}%の塩基の% '} - まだ問題は残っています。 – lericson

+0

あなたの計算をテンプレートの代わりにPythonコードに入れますか? – geoffspear

+0

ユーザーインターフェイス設計に近視眼的なアプローチのようです。 – lericson

答えて

0

、答えが(同時にではなく)容易に利用可能です。 Jinjaで適切なスタックトレースを取得するには、長い間Googleアプリケーションエンジンで利用できなかったctypeを持つ必要があります。私は現在の状況について完全にはわかっていませんが、この質問にはあなたのための解決策がいくつかあります:Debug Jinja2 in Google App Engine

関連する問題