在定义选择字段的元组列表中,前导下划线的意义是什么?
我看到了一些例子,定义选择字段是这样写的:
COUNTRIES = (
('fr', _('France')),
('de', _('Germany')),
...
)
(来源: http://code.djangoproject.com/ticket/5446 另见: http://djangosnippets.org/snippets/494/)
那么,前面的下划线是什么意思呢?而且,为什么元组中的第二个值要用括号括起来呢?
1 个回答
97
前面的下划线是一个常用的函数别名,它代表了国际化(i18n)机制中使用的ugettext函数之一。
这意味着,当你使用国际化功能时,选择框的标签会被翻译成适合最终用户的语言,前提是有对应的翻译可用。
在使用这种语法的文件顶部,你应该能看到(或者如果没有的话,你应该添加)类似这样的内容:
from django.utils.translation import ugettext_lazy as _
想了解更多细节,可以查看这里的文档