这一行中下划线在("密码")之前有什么相关性?
password = models.CharField(_('password'), max_length=128)
我查看了Django文档,它指出模型字段定义中的第一个参数是"详细名称",但我找不到下划线在这种情况下有什么相关性?
我正在查看的整个文件是:https://github.com/django/django/blob/master/django/contrib/auth/models.py
谢谢,标记
下划线是表示此字符串可用于翻译的常用方式:
from django.utils.translation import ugettext_lazy as _
这意味着字符串将出现在收集这些字符串并用它们替换翻译字符串的工具中(例如,请参阅GNUgettext)。这种方法不仅在Python中使用,而且在其他需要翻译字符串的编程语言/项目中也使用。
如果你要更改Django网站的语言,它会知道显示一个不同的字符串,而不是'password'
(取决于可用的翻译,否则它将默认返回此英文字符串)。
Undercore可能用于本地化/翻译。检查导入。例如
from django.utils.translation import ugettext_lazy as _
在此链接中https://github.com/django/django/blob/master/django/contrib/auth/models.py查找包含以下导入的行
from django.utils.translation import ugettext_lazy as _
对于国际字符集(Unicode)支持,请使用ugettext()。您可以使用ugettext_lazy()作为特定文件的默认翻译方法。