【问题标题】:Django Template - iterating through nested dictionary - too many examplesDjango 模板 - 遍历嵌套字典 - 太多示例
【发布时间】:2013-09-19 10:24:54
【问题描述】:

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

    {
'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 等),但我无法让它发挥作用。

感谢所有建议。

【问题讨论】:

    标签: django django-templates django-views


    【解决方案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 %}
    

    【讨论】:

    • 我也注意到我的错误,但这个例子完全符合预期。谢谢!!
    猜你喜欢
    • 2021-12-20
    • 2011-10-11
    • 2020-08-03
    • 2021-01-18
    • 2017-07-25
    相关资源
    最近更新 更多