Django形成数据报复和显示

时间:2017-09-26 16:17:47

标签: python django django-forms django-templates django-views

我在templates.py的模板文件中获取此类数据。现在我想只获取 sql_name 字段的数据u'ag_pres。那我怎么能得到这些数据呢?在投票之前请让我知道我做错了什么?

<type 'list'>: [{'sql_name': u'ag_pres', 'type': 'string', 'name': u'Ag Pres', 'map_order': 0}, {'sql_name': u'abc', 'type': 'string', 'name': u'ABC', 'map_order':0}]

2 个答案:

答案 0 :(得分:1)

如果没有剩下的视图和模板代码,很难分辨,但是看看那个输出我认为问题是sql_name位于列表中的对象内部 - 所以不能直接访问。

您需要循环浏览模板中列表中的项目,以输出sql_name的值。您可以使用{%for%}内置代码执行此操作:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#for

例如,在您的模板中:

{% for item in the_list %}
    {{ item.sql_name }}
{% endfor %}

答案 1 :(得分:1)

看来您可能有一个包含此数据的变量,让我称之为result,并且您已经询问了它的类型。

然后我可以说,

result = [{'sql_name': u'ag_pres', 'type': 'string', 'name': u'Ag Pres', 'map_order': 0}, {'sql_name': u'abc', 'type': 'string', 'name': u'ABC', 'map_order': 0}]

我可以看到结果是一个列表,我发现它的长度是两个。

>>> len(result)
2

'sql_name'显然位于列表中的第二项,即字典。

>>> result[1]
{'sql_name': 'abc', 'map_order': 0, 'name': 'ABC', 'type': 'string'}

然后我可以通过以下方式获得此项目的价值。

>>> result[1]['sql_name']
'abc'