首页 > 解决方案 > Django模板“pluralize”过滤器导致原始文本输出

问题描述

我现在正在阅读 Django 教程(https://docs.djangoproject.com/en/3.0/intro/tutorial04/)并遇到了复数的这个小问题。

使用此代码:

<li>{{ choice.choice_text }} -- {{ choice.votes }} vote{{ choice.votes|pluralize }}</li>
{

复数过滤器没有做任何事情,模板返回如下内容:

Just hacking again -- 2 vote{{ votes|pluralize }} // just the template code itself.

好像它只是忽略了 {{ }} 指标。

如果我去掉复数,那么choice.votes 变量将显示(在这种情况下)一个2,正如预期的那样,就像它对{{choice.votes }}所做的那样。的添加| pluralize似乎打破了插值,就在那个区域。

我没有看到需要添加的任何类型的导入或类似内容;我什至复制并粘贴以确保没有拼写错误,也没有在 console.log 中看到任何内容。

对这里可能(不)发生的事情有任何见解吗?

标签: pythondjangofilterinterpolation

解决方案


对我来说,真正解决这个问题的方法是写在同一行:

vote{{ choice.votes|pluralize }}

无论上述之间的空间如何,这都有效。

Django 教程 ( https://docs.djangoproject.com/en/3.2/intro/tutorial04/ ) 中的代码在 {{ 后立即显示换行符,因此可能会产生误导: 在此处输入图像描述

(在 Chrome 中以 100% 缩放的屏幕截图。但这个换行符也显示到 125%)


推荐阅读