django - 防止在 django 模板中呈现 unicode 字符

标签 django postgresql

我正在对 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/

相关文章:

django - Django 模型中 Managed=False 选项的实用性

PostgreSQL 提示主键中的元素不存在比较函数

mysql - MySQL 的 i18n(印度语)支持有什么问题吗?

sql - 在 SQL 中如何仅返回匹配日期和月份的记录(忽略年份)

postgresql - 在 Postgres 中使用限制选择更新

postgresql - Java PostgreSQL : Suppress error output when connection failed

python - 应用引擎 : submitting form data to Google Spreadsheet

python - 返回多个 HttpResponse 对象,这些对象是 Excel 电子表格

django - DRF如何获取按类别分组的项目

django 1.7 迁移——如何清除所有迁移并从头开始?