python - Django 'string_if_invalid' 非默认行为
问题描述
在模板中,我根据给定变量是否存在(然后我在表单中编辑它)或不存在(然后我显示一个表单来为其创建新值)使用某些输出格式,如下所示:
<!-- 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
不存在时,我的记录器将长异常跟踪打印到控制台。
根据文档,string_if_invalid
的默认值为""
,因此任何源自模板标签的异常都不应打印到日志中。
我梳理string_if_invalid
了 SO 中的每个相关问题,但没有一个答案对我有用。
在我的情况下,什么可能导致与默认行为相反的行为,我该如何解决?
谢谢!
示例异常跟踪:
[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
解决方案
我有同样的问题。似乎没有设置默认值。如果我将密钥设置为无,则错误得到解决。
推荐阅读
- mysql - 查询列出员工人数多于某个部门的部门
- asp.net-core - 网络核心中间件对失败的需求采取行动
- flutter - 在颤振列表中
不是 List 的子类型 - python - SQLAlchemy UNIQUE 约束在多对多关系上失败
- javascript - 将内容从 div 渲染到分层阴影 dom 内部
- java - Controller 类中的 FileChooser - SceneBuilder JavaFX
- c - ESP8266 异常(三)
- javascript - 如何在 React v16.13.1 中使用 React Router v5 和 Hooks 获取位置路径名?
- flutter - Flutter 广告仅在测试模式下展示
- maven-3 - Maven 中的版本管理