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

时间:2011-03-23 19:34:15

标签: django

这是关于Django教程 - 第2部分 http://docs.djangoproject.com/en/dev/intro/tutorial02/

在更改管理页面模板的部分中,我尝试在base_site.html页面中更改此部分。

{%trans'Django的管理'%}

当我添加撇号和s时,我认为错误是 - / admin /中的TemplateSyntaxError 'trans'的唯一选择是'noop'

为什么会这样?我以为我应该可以更改网站的名称。我也试过使用双引号和转义序列,但它没有用。

2 个答案:

答案 0 :(得分:6)

  

我尝试使用双引号并逃脱   顺序,但它没有用。

这绝对是个问题。这是错误消息指定的唯一问题!

你是肯定的,没有其他地方你做过吗?

应该是:

{% trans "Django's administration" %}

该错误消息仅存在于标记“trans”中,并且如果标记中的任何其他参数不是noop,则会显示该错误消息。

答案 1 :(得分:2)

问题是第二个单引号:

{% trans 'Django's administration' %}

Django将其后的所有内容视为一种论点。由于它接受的唯一参数是noop,这导致错误。

解决这个问题的一种方法是像Yuji'Tomita'Tomita所建议的那样做,并用双引号括起你的翻译字符串。

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

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

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