Django 模型字段包含奇怪的属性 _("private")
Django model field contain strange attribute _("private")
目前我一直在学习Django,在阅读时,我遇到了下面的代码块,我不明白。
private = models.BooleanField(
_('private'),
default=False,
help_text=_('theme is available ONLY for the site.'),
)
上面的代码行包含 _('private')
,我无法理解它的作用。我知道将 _
用于与翻译相关的内容。为什么没有为 _("private")
声明属性名称?
我试图在网上找到答案,但一直找不到。
谢谢。
_('private')
设置属性 verbose_name
.
前导下划线是国际化 (i18n) 机制使用的 ugettext 函数之一的常用函数别名。
这意味着当您拥有 i18n 运行 时,标签将被翻译成适当的 end-user 语言,如果翻译可用的话。
检查这个答案:
正如您在 source code of Django 中所见,Field
(BooleanField
继承)的构造函数将 verbose_name
作为第一个位置参数。因此,您的第一个参数 (_('private')
) 将受到影响 verbose_name
.
但是,为了让您的代码更清晰,我建议将其作为关键字参数传递:
private = models.BooleanField(
verbose_name=_('private'),
default=False,
help_text=_('theme is available ONLY for the site.'),
)
为 verbose_name
使用关键字参数将使您和阅读您代码的人更清楚,尤其是自 Django documentation does not give the order of positional arguments 以来。使用位置参数迫使读者阅读 Django 源代码以了解它是什么。
当你使用关键字参数时,你可以随意放置你的参数,所以这段代码将同样有效:
private = models.BooleanField(
help_text=_('theme is available ONLY for the site.'),
verbose_name=_('private'),
default=False,
)
目前我一直在学习Django,在阅读时,我遇到了下面的代码块,我不明白。
private = models.BooleanField(
_('private'),
default=False,
help_text=_('theme is available ONLY for the site.'),
)
上面的代码行包含 _('private')
,我无法理解它的作用。我知道将 _
用于与翻译相关的内容。为什么没有为 _("private")
声明属性名称?
我试图在网上找到答案,但一直找不到。
谢谢。
_('private')
设置属性 verbose_name
.
前导下划线是国际化 (i18n) 机制使用的 ugettext 函数之一的常用函数别名。
这意味着当您拥有 i18n 运行 时,标签将被翻译成适当的 end-user 语言,如果翻译可用的话。
检查这个答案:
正如您在 source code of Django 中所见,Field
(BooleanField
继承)的构造函数将 verbose_name
作为第一个位置参数。因此,您的第一个参数 (_('private')
) 将受到影响 verbose_name
.
但是,为了让您的代码更清晰,我建议将其作为关键字参数传递:
private = models.BooleanField(
verbose_name=_('private'),
default=False,
help_text=_('theme is available ONLY for the site.'),
)
为 verbose_name
使用关键字参数将使您和阅读您代码的人更清楚,尤其是自 Django documentation does not give the order of positional arguments 以来。使用位置参数迫使读者阅读 Django 源代码以了解它是什么。
当你使用关键字参数时,你可以随意放置你的参数,所以这段代码将同样有效:
private = models.BooleanField(
help_text=_('theme is available ONLY for the site.'),
verbose_name=_('private'),
default=False,
)