簡體   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