在定义选择字段的元组列表中,前导下划线的意义是什么?

67 投票
1 回答
13716 浏览
提问于 2025-04-15 23:29

我看到了一些例子,定义选择字段是这样写的:

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 _

想了解更多细节,可以查看这里的文档

撰写回答