我有一个带有unicode键的字典(字典是从mongo db中提取的)。当我在模板中渲染它时,我无法使用键访问它,因为无法在模板中生成unicode字符串(我知道没有)
这是我的代码:(缩写)
context={
'title':'Mytitle',
'options'={
u'A':u'1st option',
u'A':u'1st option',
u'A':u'1st option',
u'A':u'1st option',
u'A':u'1st option'
}
}
return render(request,'trial.html',context)
<head>
<title>{{title}}</title>
</head>
<body>
{% for i in 'ABCDE' %}
<div>{{options.i}}</div>
</body>
我想要的是按键的字母顺序显示选项中的值。如果可以通过任何其他方式来解决这个unicode问题,我很高兴。如果有任何方法可以从mongo获取ascii字符串,那也将解决它。
答案 0 :(得分:0)
假设您的上下文采用dict格式(您的选项为=)。您可以创建自定义模板标签以对选项中的值进行排序。我希望它有所帮助。
# custom templatetag
@register.filter
def sort_by_key(options):
# output of this is a list of tuples [('A', 'value1'), ('B', 'value2')]
return sorted(options.items(), key=lambda s: s[0])
# Template
{% for option in options|sort_by_key %}
<!-- here key=option.0 and value=option.1 -->
<option id="{{ option.0 }}" value="{{ option.1 }}">{{ option.1 }}</option>
{% endfor %}