Django模型title = models.CharField(_(' title'),max_length = 100)

时间:2016-11-11 21:07:34

标签: django

class PersonType(models.Model):
    """Person type model."""
    title = models.CharField(_('title'), max_length=100)
    slug = models.SlugField(_('slug'), unique=True)

我想知道_(' titile')在这里做什么标题。什么是_(' slug')为slug做什么?

2 个答案:

答案 0 :(得分:0)

Field子类的第一个位置参数是该字段的verbose_name:请参阅__init__的{​​{1}}构造函数:

Field

下划线class Field(RegisterLookupMixin): ... def __init__(self, verbose_name=None, name=None, ...) ... _惯例的别名:您可能会看到以下代码行:

ugettext_lazy

Django docs提供功能相当的代码段,它使用关键字参数而不是位置args:

from django.utils.translation import ugettext_lazy as _

这是一个"懒惰的翻译":

  

这些函数存储对字符串的惰性引用 - 而不是实际的转换。当字符串在字符串上下文中使用时,例如在模板渲染中,将完成翻译本身。

答案 1 :(得分:0)

_是可调用对象(函数,可调用对象)的名称。通常用于gettext函数,例如在Django中:

Django Ducumentation

您可以这样使用:

from django.utils.translation import gettext
equal output = gettext("Welcome to my site.")

或者这样

from django.utils.translation import gettext as _
output = _("Welcome to my site.")

它们都用于翻译,而yot可以在模板中使用此值,如下所示:

<title>{% trans "Welcome to my site." %}</title>

# Will print "Welcome to my site." if the current language is English
# "Bienvenue sur mon site." in French
# "به سایت من خوش آمدید." in Iran