使用 django 模板中的 unicode 键访问字典

access dictionary with unicode keys from django template

我有一本带有 unicode 键的字典(字典是从 mongo 数据库中提取的)。当我在模板中呈现它时,我无法使用键访问它,因为无法在模板中生成 unicode 字符串(我知道的None)

这是我的代码:(缩写)

views.py

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)

trial.html

<head>
    <title>{{title}}</title>
</head>
<body>
    {% for i in 'ABCDE' %}
    <div>{{options.i}}</div>
</body>

我只想按键的字母顺序显示选项中的值。如果可以用不需要解决这个 unicode 问题的任何其他方式来完成,我很高兴。如果有任何方法可以从 mongo 获取 ascii 字符串,那也将解决它。

假设您的上下文是字典格式(您的有选项=)。您创建一个自定义模板标签来对选项中的值进行排序。希望对你有帮助。

# 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 %}