Django模板 - 迭代嵌套字典 - 太多的例子

时间:2013-09-15 02:00:43

标签: django django-templates django-views

我调用了一个外部数据源,该外部数据源以这种格式成功返回字典。可以有任意数量的条目:

    {
'0090000': {'status': 'some status', 'modified_date': '2013-08-09T14:23:32Z', 'modified_by': 'John Doe', 'severity': '3 (Normal)', 'created_by': 'Dan Smith', 'summary': "some status", 'created_date': '2013-07-18T21:10:36Z'},
'0060000': {'status': 'some status', 'modified_date': '2013-06-24T03:19:01Z', 'modified_by': 'Jay Johnson', 'severity': '4 (Low)', 'created_by': 'Tony Thompson', 'summary': "some other status", 'created_date': '2012-05-03T17:45:19Z'}...
}

我正在使用表单中收集的一些信息来提取此数据。我已经阅读了大量文档以及如何迭代这些并在模板中呈现数据的示例,但我无法使其工作。

我的观点如下:

def agenda_detail(request, agenda_id):

    #get the meeting data
    a_data = get_object_or_404(meetingEvent, pk=agenda_id)

    #get the DEE data for the VAT fieldset
    account_id = a_data.account_number.pk

    #get the stored session user/pass
    username = request.session['username']
    password = request.session['password']

    dee_data = onsiteEngineer.objects.filter(account=account_id)

    #now we get the case data from the Portal API
    portal_raw = CustomerInformation()
    customer_data = portal_raw.getOpenCaseInfo(account_id,username,password)

    return render_to_response('agendas/detail.html',{'a_data':a_data, 'dee_data': dee_data, 'customer_data': customer_data.iteritems()}, context_instance=RequestContext(request))

我的模板代码处理的是(我现在不关心html格式,我只是想在屏幕上看到数据:

{% for key, value in customer_data.items %}
<p>{{ key }}</p>
{% for info in value %}
    {{ value }}
{% endfor %}
{% endfor %}

它没有显示任何数据。我尝试了多种组合(使用.items,使用iteritems等),但我无法让它工作。

所有建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

由于customer_data是字典,因此您只需在上下文中发送'customer_data': customer_data而不是'customer_data': customer_data.iteritems()

现在在模板中,试试这个:

{% for key, value in customer_data.items %}
    <p>{{ key }}</p>
    {% for k, v in value.items %}
        {{ k }}: {{ v }} <br/>
    {% endfor %}
{% endfor %}