当变量为None时,Django设置默认模板标签输出?

zzz*_*zzz 30 python django django-templates

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

{{cat}} chases {{mouse}}
Run Code Online (Sandbox Code Playgroud)

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

None chases None
Run Code Online (Sandbox Code Playgroud)

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

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

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

Chr*_*att 38

没有这样的事情存在.这就是defaultdefault_if_none过滤器存在的原因.这是一个特点 ; 它会让你思考你正在做的事情而不是依赖一些往往会产生误导的行为.如果存在变量的可能性None,那么您应该计划该意外事件.如果变量应该总是有一些值,那么"无"表示某些东西不对.如果默认只是渲染一个空白字符串,那么您将不知道该值是否未定义或实际上是空字符串.编写连贯的代码并忘记快捷方式.

  • +1因为"明确比隐含更好". (4认同)