Ich weiß nicht warum, aber in letzter Zeit die Tracebacks, die ich von Jinja Vorlage Rendering Fehler bekomme, sind mehr oder weniger vollständig bedeutungslos.Warum sind meine Jinja-Rückverfolgungen bedeutungslos?
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
Natürlich kann ich ableiten, wo der tatsächliche Fehler ist von den meisten der Vorlage zu entfernen und zu sehen, wenn der Fehler auftritt beginnt, aber das ist eine dumme Entwicklung Methode.
Wie mache ich die Tracebacks wieder nützlich?
By the way, habe ich folgende Beschwörung in meinem 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()
Es stellte sich heraus, dass das Problem in einer Vorlage war, die über '{% import ...%}', die fehlerhafte Zeile importiert wurde war '{% für Basis im Bereich (52/13)%}' - die Frage bleibt jedoch noch. – lericson
Setzen Sie Ihre Berechnungen in Python-Code statt einer Vorlage? – geoffspear
Scheint wie ein kurzsichtiger Ansatz für das Design der Benutzeroberfläche. – lericson