使用 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 %}
我有一本带有 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 %}