Django模板语言缩短了单词

时间:2017-05-31 14:35:50

标签: django jinja2

我想显示用户为其用户个人资料选择的语言。 一切正常,我无法显示完整的语言名称。所以当我写{{user.userprofile.language}}时,html输出是"英语,西班牙语,法语"但是当我写{{user.userprofile.language.0}}时,我得到了" en"而不是"英语"。

我现在拥有的东西:

<跨度>恩< /跨度>

<跨度>星期五< /跨度>

<跨度> SP< /跨度>

我想拥有什么:

<跨度>英语< /跨度>

<跨度>法语< /跨度>

<跨度>西班牙语< /跨度>

有人知道如何显示完整的价值吗?

编辑:

class UserProfile(models.Model):
    language = MultiSelectField(max_choices=3,choices=settings.LANGUAGES, default='en')

settings.py:

LANGUAGES = (
('en', _('English')),
('pt', _('Portuguese')),
('dt', _('Deutsch')),
('sp', _('Spanish')),
('fr', _('French')),
('nl', _('Dutch')),
('pl', _('Polish')),
('au', _('Austrian')),
('ch', _('Schweizerisch')),
('hr', _('Kroatisch')),
('ru', _('Russian')),
)

1 个答案:

答案 0 :(得分:1)

您好像正在使用此django-multiselectfield包吗?

阅读文档,看起来你应该做更多的事情:

{% for code, name in user.userprofile.language %}
    <span>{{ name }}</span>
{% endfor %}

或者也许:

{% for code, name in user.userprofile.language.choices %}
    <span>{{ name }}</span>
{% endfor %}

这些解决方案中的任何一个都适合您吗?

如果没有,您能否确认模型中的MultiSelectField从哪里导入?