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

{{cat}} chases {{mouse}}

如果CAT和MICE均为NONE,则它将渲染为:

None chases None

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

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

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

推荐答案

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

Django相关问答推荐

Django Prefetch上的多重过滤

在/Contact-Agent/Get()返回的多个对象返回了多个属性--它返回了2

测试 - 两个类共享相同的登录代码,但它只能在一个类中工作

一次请求中更新整个Django模型

如何根据状态计算表中数据的数量?

过滤查询以获取两个朋友之间的聊天消息?

无法创建超级用户,因为 Django 中的一列(外键)不能为空

如何在没有此前缀的情况下修复此 django 路径?

PyCharm:强制 Django 模板语法突出显示

DeleteView 中的success_message 未显示

直接在模型类上使用 Django 管理器与静态方法

如何在 Django 中返回静态 HTML 文件作为响应?

Django rest-auth allauth 注册,带有邮箱、名字和姓氏,没有用户名

Django:创建索引:非唯一,多列

Django 应用程序中的版本号

从 django/python 中的 request.POST 检索列表项

Django:必须使用对象 pk 或 slug 调用通用详细视图

确保只有一个工作人员在运行多个工作人员的 pyramid 网络应用程序中启动 apscheduler 事件

如何获取 Django 模型字段对象的值

Python Django 的多线程