Django模板错误 - 'trans'的唯一选项是'noop'。

4
这是有关Django教程的第二部分 http://docs.djangoproject.com/en/dev/intro/tutorial02/ 在更改管理页面模板的部分中,我尝试更改base_site.html页面中的此部分。
当我添加撇号和s时,我会收到错误消息 - TemplateSyntaxError at /admin/ only option for 'trans' is 'noop'
为什么会这样?我以为我应该能够更改网站的名称。我还尝试使用双引号和转义序列,但没有成功。
2个回答

6

我尝试过使用双引号和转义序列,但是它没有起作用。

这绝对是问题所在。这也是错误信息指定的惟一问题!

您确定没有其他地方也这样做了吗?

应该是这样:

{% trans "Django's administration" %}

只有在“trans”标签中存在其他参数且不是“noop”时,才会出现该错误消息。

好问题(我不使用它)。这是我刚刚找到的最有用的解释,说明它为什么存在。http://www.mail-archive.com/django-users@googlegroups.com/msg45027.html - Yuji 'Tomita' Tomita

2

问题出在第二个单引号:

{% trans 'Django's administration' %}

Django会把它之后的所有内容都视为一个参数。由于它只接受noop作为参数,这会导致错误。

解决方法之一是像Yuji'Tomita'Tomita建议的那样,用双引号将翻译字符串括起来。

另一种方法是使用blocktrans标签:blocktrans

{% blocktrans %}
Django's administration
{% endblocktrans %}

由于您没有使用引号来表示需要翻译的文本,因此这不会遇到与 trans 标记相同的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接