2013-11-27 4 views
0

Какое значение имеет подчеркивание до ('password') в этой строке?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

Спасибо, Марк

ответ

4

Подчеркивание является распространенным способом обозначив, что эта строка доступна для перевода:

from django.utils.translation import ugettext_lazy as _ 

Это означает, что строка будет отображаться в инструментах, которые собирают эти строки и заменить их в переводе строки (см. GNU gettext например). Этот подход используется не только в Python, но и в других языках программирования/проектах, для которых требуются переведенные строки.

Если вы хотите изменить язык своего сайта Django, ему будет известно, что для отображения другой строки вместо 'password' (в зависимости от того, какие переводы доступны, в противном случае она вернется к этой английской строке).

1

Подчеркивание может быть для локализации/перевода. Проверьте импорт. ex.

from django.utils.translation import ugettext_lazy as _

1

В этой связи https://github.com/django/django/blob/master/django/contrib/auth/models.py ищет строку, содержащую ниже импорта

from django.utils.translation import ugettext_lazy as _ 

Для международного набора символов поддержки (Unicode), ugettext(). Вы можете использовать ugettext_lazy() как метод перевода по умолчанию для конкретного файла ,