python - 变量为无时默认模板标签输出的Django设置?

标签 python django django-templates

我正在寻找一种 django 设置或编程方式,以使所有 django 模板标签在值为 None 时显示空字符串。例如,假设我有一些 django 模板:

{{cat}} chases {{mouse}}

如果 cat 和 mouse 都为 None,它将呈现为:

None chases None

我知道我可以使用 {{cat|default:""}} 设置每一个或 {{mouse|default_if_none:""}}

但是,我正在寻找某种设置,允许我为所有标签设置默认值,而无需显式添加 |default:""到每个标签。

我还知道一个名为 TEMPLATE_STRING_IF_INVALID 的设置.但是,此设置仅适用于无效字符串。没有一个被认为是有效的。

最佳答案

不存在这样的东西。这就是为什么 defaultdefault_if_none过滤器存在。这是一个功能;它让你思考你在做什么,而不是依赖于一些经常会误导的行为。如果变量有可能是None,那么您应该为这种意外情况做好准备。如果变量应始终具有 some 值,则“无”表示某些事情不正确。如果默认只呈现一个空白字符串,那么您将不知道该值是否未定义或实际上是一个空白字符串。编写连贯的代码,忘记快捷方式。

关于python - 变量为无时默认模板标签输出的Django设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590198/

相关文章:

python - 数值错误

python - 有没有办法获取DRF中所有ManyToMany相关的对象

python - Theano GPU 内存不足错误

python - Elastic Beanstalk :/bin/sh:/opt/python/run/venv/bin/activate: No such file or directory

python - 可以使用scipy将连续随机变量转换为离散变量吗?

python - 如何在 Django 1.4(使用一台 Apache 服务器)中使用 django.contrib.staticfiles 提供管理静态文件?

python - 要在应用程序之间共享的自定义对象管理器应该放在哪里?

google-app-engine - 缺少 Django 0.96 模板文档(由 Google AppEngine 开发人员使用)

django - 如何在模板中获取当前页面的URL,包括参数?

django - 覆盖现有的Django模板标签