2017-05-31 74 views
-1

我想顯示用戶爲其用戶配置文件選擇的語言。 一切正常我只是不能顯示完整的語言名稱。所以當我寫{{user.userprofile.language}}的html輸出是「英文,西班牙文,法文」,但是當我寫{{user.userprofile.language.0}}時,我得到了「en」而不是「英文」。Django模板語言縮寫詞

我現在所擁有的:

< SPAN>恩</SPAN>

< SPAN>神父</SPAN>

< SPAN> SP </SPAN>

我想要的是:

<跨度>英語</SPAN>

< SPAN>法國</SPAN>

< SPAN>西班牙</SPAN>

任何人都知道如何顯示的全部價值?

編輯:

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')), 
) 
+0

什麼是完整價值?你正在學英語嗎?所以? – Exprator

+0

im not getting「English」當我做{{user.userprofile.language.0}}時,我會得到「en」,但是我想要改爲「English」。用戶應該看到完整的單詞不只是兩個字母... – hansTheFranz

+0

您還沒有顯示您的模型,因此我們不知道userprofile.language是什麼。 – Alasdair

回答

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從哪裏導入?

+0

'從multiselectfield import MultiSelectField'是的我使用包多選擇,但我認爲它更多的Django的東西。你的答案也不適用。第一個代碼只顯示每種語言的一個字母。第二個代碼沒有顯示。我讓它和js一起工作。接受字符串拆分並在加載時在頁面上追加單詞。無論如何,感謝您的幫助:) – hansTheFranz

+0

奇怪。我對這個軟件包不太熟悉,所以如果這樣做沒有用,我就不會有更好的建議。至少你得到了JS的工作。 – tdsymonds