我正在对 View 中的表执行查询,并将数据传递给上下文字典:
conn = psycopg2.connect(constr)
cur = conn.cursor()
sqlstr = "SELECT DISTINCT adm0_name FROM wld_bnd_adm0_gaul_2015 ORDER BY adm0_name;"
cur.execute(sqlstr)
countries = cur.fetchall()
ctx['countries'] = countries
然后我想在我的模板中呈现数据如下:
{% if countries %}
{% for cntr in countries %}
<li><a href="#" id= {{ cntr }}>{{ cntr }}</a></li>
{% endfor %}
{% endif %}
问题是我得到了这样的 unicode 格式:
[(u'Abyei',), (u'Afghanistan',), (u...
我尝试将 View 中的数据转换为 JSON:
countries = json.dumps(countries)
但实际上,当我在模板中呈现数据时,我会分别获取 JSON 字符串的每个字符。
最佳答案
如文档中所述 fetchall
返回一个元组列表,因此每个国家名称都在列表中的一个元组内。您需要展平列表以获取国家/地区列表。
countries = cur.fetchall()
countries = [c[0] for c in countries]
ctx['countries'] = countries
关于django - 防止在 django 模板中呈现 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37521310/