Почему этот код Django использует _ перед 'has favicon'
_
has_favicon = models.BooleanField(_('has favicon'))
Если вы посмотрите в операторах импорта, вы обнаружите, что они связали _ с функцией, которая превращает материал в юникод и локализует его, написав:
from django.utils.translation import ugettext_lazy as _
_ в Django - это соглашение, которое используется для локализации текстов. Это псевдоним для ugettext_lazy. Прочитайте Ленивый перевод в документации для получения дополнительной информации об этом.
_ обычно является макросом / функцией из gettext, это означает, что аргумент является локализованной строкой. это не ограничивается Django или Python. фактически, gettext изначально был пакетом для программ на C, портированных на многие другие языки за эти годы.