繁体   English   中英

Django密码= models.CharField(_('password'),max_length = 128)

[英]Django password = models.CharField(_('password'), max_length=128)

下划线在此行之前(“密码”)有什么相关性?

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 _

这意味着该字符串将显示在收集这些字符串并将其替换为转换后的字符串的工具中(例如,请参见GNU gettext )。 这种方法不仅在Python中使用,还在需要翻译字符串的其他编程语言/项目中使用。

如果您要更改Django网站的语言,它将知道显示一个不同的字符串而不是'password' (取决于可用的翻译,否则默认情况下将返回此英语字符串)。

下划线可能用于本地化/翻译。 检查进口。 例如

from django.utils.translation import ugettext_lazy as _

在此链接中https://github.com/django/django/blob/master/django/contrib/auth/models.py查找包含以下import的行

from django.utils.translation import ugettext_lazy as _

对于国际字符集(Unicode)支持,使用ugettext()。您可以将ugettext_lazy()用作特定文件的默认翻译方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM