Python:TypeError:'unicode'对象不可调用,与ugettext冲突?

时间:2013-04-08 15:25:57

标签: python django unicode typeerror

我正在使用GeoDjango示例和class WorldBorder。 我的麻烦是我无法打印出所选国家的名称。当我尝试执行

from django.utils.translation import ugettext_lazy as _
...
location = fromstr(... , srid=4326)
country = WorldBorder.objects.get(mpoly__intersects=location)
print _('User country determined to %s') %country.name

我收到错误消息:

Python: TypeError: 'unicode' object is not callable

当我删除ugettext_lazy时,一切正常。 如何保留翻译选项并使字符串有效?

1 个答案:

答案 0 :(得分:4)

看起来你正在使用Python shell。在那里,_将取最后一个表达式的值。所以_最终成为第三行之后的WorldBorder实例。为避免此问题,当您在shell中使用translate时,请将ugettext_lazy别名为' _'。

以外的其他内容。