用于更改字典中键名的 Django 模板标签
Django template tags for changing key names in a dictionary
我正在使用 Django 模板开发汉字网站。我有一本用外部 xml 制作的词典。我将 xml 标签设置为键。这是其中一本词典的示例(偶然碰巧是关于词典的……纸质词典:P)
'dictionaryEntries': {'nelson_c': '43', 'nelson_n': '81', 'halpern_njecd': '3540', 'halpern_kkd': '4354',
'halpern_kkld': '2204', 'halpern_kkld_2ed': '2966', 'heisig': '1809', 'heisig6': '1950', 'gakken': '1331', 'oneill_names': '525', 'oneill_kk': '1788', 'moro': '272', 'henshall': '997', 'sh_kk': '1616', 'sh_kk2': '1724', 'jf_cards': '1032', 'tutt_cards': '1092', 'kanji_in_context': '1818', 'kodansha_compact': '35', 'maniette': '1827'}
在模板上使用以下代码,它们显示在网站上:
<ul>
{% for key, value in dictionaryEntries.items %}
<li><b>{{key}}: </b>{{value}}</li>
{%endfor%}
</ul>
然后他们在 html 上得到了类似以下内容:
<ul>
<li><b>nelson_c: </b>2991</li>
<li><b>nelson_n: </b>3715</li>
<li><b>halpern_njecd: </b>3497</li>
<li><b>halpern_kkd: </b>4309</li>
<li><b>halpern_kkld: </b>2179</li>
<li><b>halpern_kkld_2ed: </b>2933</li>
<li><b>heisig: </b>1555</li>
<li><b>heisig6: </b>1675</li>
<li><b>gakken: </b>29</li>
<li><b>oneill_names: </b>214</li>
<li><b>oneill_kk: </b>67</li>
<li><b>moro: </b>21670</li>
<li><b>henshall: </b>42</li>
<li><b>sh_kk: </b>44</li>
<li><b>sh_kk2: </b>44</li>
<li><b>sakade: </b>34</li>
<li><b>jf_cards: </b>71</li>
<li><b>henshall3: </b>44</li>
<li><b>tutt_cards: </b>43</li>
<li><b>crowley: </b>9</li>
<li><b>kanji_in_context: </b>49</li>
<li><b>busy_people: </b>2.4</li>
<li><b>kodansha_compact: </b>1327</li>
<li><b>maniette: </b>1569</li>
</ul>
但是,如您所见,nelson_c
等键值对用户来说不是很友好。我不想更改 xml 上的标签名称。有没有办法,也许通过标签,将那些像键一样的计算机更改为更用户友好的文本(在 nelson_c
情况下,它应该是“Nelson Classic”)。
预先感谢您的所有建议!
这比我想象的要容易。通过一个简单的条件就可以了。
{%if key == "nelson_c" %}
<li><b>Classic Nelson: </b>{{value}}</li>
我正在使用 Django 模板开发汉字网站。我有一本用外部 xml 制作的词典。我将 xml 标签设置为键。这是其中一本词典的示例(偶然碰巧是关于词典的……纸质词典:P)
'dictionaryEntries': {'nelson_c': '43', 'nelson_n': '81', 'halpern_njecd': '3540', 'halpern_kkd': '4354',
'halpern_kkld': '2204', 'halpern_kkld_2ed': '2966', 'heisig': '1809', 'heisig6': '1950', 'gakken': '1331', 'oneill_names': '525', 'oneill_kk': '1788', 'moro': '272', 'henshall': '997', 'sh_kk': '1616', 'sh_kk2': '1724', 'jf_cards': '1032', 'tutt_cards': '1092', 'kanji_in_context': '1818', 'kodansha_compact': '35', 'maniette': '1827'}
在模板上使用以下代码,它们显示在网站上:
<ul>
{% for key, value in dictionaryEntries.items %}
<li><b>{{key}}: </b>{{value}}</li>
{%endfor%}
</ul>
然后他们在 html 上得到了类似以下内容:
<ul>
<li><b>nelson_c: </b>2991</li>
<li><b>nelson_n: </b>3715</li>
<li><b>halpern_njecd: </b>3497</li>
<li><b>halpern_kkd: </b>4309</li>
<li><b>halpern_kkld: </b>2179</li>
<li><b>halpern_kkld_2ed: </b>2933</li>
<li><b>heisig: </b>1555</li>
<li><b>heisig6: </b>1675</li>
<li><b>gakken: </b>29</li>
<li><b>oneill_names: </b>214</li>
<li><b>oneill_kk: </b>67</li>
<li><b>moro: </b>21670</li>
<li><b>henshall: </b>42</li>
<li><b>sh_kk: </b>44</li>
<li><b>sh_kk2: </b>44</li>
<li><b>sakade: </b>34</li>
<li><b>jf_cards: </b>71</li>
<li><b>henshall3: </b>44</li>
<li><b>tutt_cards: </b>43</li>
<li><b>crowley: </b>9</li>
<li><b>kanji_in_context: </b>49</li>
<li><b>busy_people: </b>2.4</li>
<li><b>kodansha_compact: </b>1327</li>
<li><b>maniette: </b>1569</li>
</ul>
但是,如您所见,nelson_c
等键值对用户来说不是很友好。我不想更改 xml 上的标签名称。有没有办法,也许通过标签,将那些像键一样的计算机更改为更用户友好的文本(在 nelson_c
情况下,它应该是“Nelson Classic”)。
预先感谢您的所有建议!
这比我想象的要容易。通过一个简单的条件就可以了。
{%if key == "nelson_c" %}
<li><b>Classic Nelson: </b>{{value}}</li>