在模板中,我根据给定变量是否存在(然后在表单中对其进行编辑)或不存在(然后显示表单为其创建新值)来使用某些输出格式,例如:
<!-- formatted for readability: -->
<form action="
{% if instance %}
{% url 'app:submit_updated_instance' instance.id %}
{% else %}
{% url 'app:submit_new_instance' %}
{% endif %}"
method="post"> .... </form>
当instance
不存在时,我的记录器会打印出很长的异常跟踪记录到控制台。
根据docs,string_if_invalid
的默认值为""
,因此任何源自模板标签的异常都不应打印到日志中。
我在SO中梳理了所有与string_if_invalid
相关的问题,但没有一个答案对我有用。
在我的情况下,什么可能导致默认行为的相反行为,以及如何解决?
谢谢!
示例异常跟踪:
[DEBUG] Exception while resolving variable 'instance' in template 'app/instances_form.html'.
Traceback (most recent call last):
File "/home/username/.local/lib/python2.7/site-packages/django/template/base.py", line 903, in _resolve_lookup
(bit, current)) # missing attribute
VariableDoesNotExist: Failed lookup for key [instance] in u'[{\'False\': False, \'None\': None, \'True\': True}, {u\'csrf_token\'....... # very long object printed here
答案 0 :(得分:0)
我有同样的问题。似乎没有设置默认值。如果将密钥设置为“无”,则可以解决错误。