Django代码中的'_'是什么意思?

15 投票
3 回答
11288 浏览
提问于 2025-04-15 17:22

为什么这个Django代码在'has favicon'前面加了一个_呢?

has_favicon = models.BooleanField(_('has favicon'))

3 个回答

9

_ 通常是来自 gettext 的一个宏或函数,它的意思是这个参数是一个本地化的字符串。这个用法不仅限于 Django 或 Python。实际上,gettext 最初是为 C 语言程序开发的,后来被移植到了许多其他编程语言中。

11

在Django中,_ 是一个用来处理文本翻译的约定。它其实是一个叫做ugettext_lazy的别名。想了解更多关于这个的内容,可以查看文档中的懒翻译部分。

37

如果你查看导入的语句,你会发现它们把 _ 这个符号和一个函数联系在了一起,这个函数的作用是把内容转换成unicode格式,并通过写入的方式进行本地化。

from django.utils.translation import ugettext_lazy as _

撰写回答