用于定义选择字段的元组列表中前导下划线的含义?

Use*_*ser 52 python django internationalization

我已经看到了一些定义选择字段的例子:

COUNTRIES = (
    ('fr', _('France')),
    ('de', _('Germany')),
    ...
)
Run Code Online (Sandbox Code Playgroud)

(来源:http://code.djangoproject.com/ticket/5446 另见:http://djangosnippets.org/snippets/494/)

领先的下划线是什么意思?为什么元组中的第二个值甚至是括号?

Ste*_*lim 75

前导下划线是国际化(i18n)机制使用的ugettext函数之一的常用函数别名.

这意味着当您运行i18n时,如果有可用的翻译,则选择域标签将被翻译成适当的最终用户语言.

在具有这种语法的文件的顶部,你应该看到(或者如果不是,你应该有)类似的东西:

from django.utils.translation import ugettext_lazy as _

有关详细信息,请参阅此处文档

  • 对于 Django 4:`from django.utils.translation import gettext as _` (8认同)