簡體   English   中英

Django模板——迭代一個元組列表,每個元組都是一個字符串,字典

[英]Django template - iterate a list of tuples, each tuple is a string, dictionary

我有一本字典,它已經變成了一個排序列表,它創建了以下內容:

monthly_spend_provider = sorted(monthly_spend_provider.items(), key=lambda item: item[1]['cost'], reverse=True)
monthly_spend_provider
[
('PROVIDER A', {'cost': Decimal('10000'), 'symbol': '£'}), 
('PROVIDER B', {'cost': Decimal('9000'), 'symbol': '$'}), 
('PROVIDER C', {'cost': Decimal('8000'), 'symbol': '$'}), 
('PROVIDER D', {'cost': Decimal('7000'), 'symbol': '£'}), 
]

現在我試圖訪問 Django 模板中元組中的數據,但沒有成功。

我認為下面會起作用,但它沒有

{% for provider in monthly_provider_country %}
    {% for data in provider %}
    <h3>{{ provider }} {{ data.symbol }} {{ data.cost|currency }}</h3>
    {% endfor %}
{% endfor %}

我可以在模板中執行此操作還是有辦法將排序列表轉換回更簡單的格式以輸出到模板中?

編輯:原始字典

>>> monthly_spend_provider
{
    'PROVIDER B': {
        'cost': Decimal('9000'), 'symbol': '$'
        },
    'PROVIDER A': {
        'cost': Decimal('10000'), 'symbol': '£'
        },
    'PROVIDER D': {
        'cost': Decimal('8000'), 'symbol': '$'
        },
    'PROVIDER C': {
        'cost': Decimal('7000'), 'symbol': '£'
        }
}

謝謝

我相信你需要。

{% for provider, d in monthly_provider_country %}
    <h3>{{ provider }} {{ d.symbol }} {{ d.cost|currency }}</h3>
{% endfor %}

我認為你必須寫你的<h3>標簽如下...

<h3>{{ data.0 }} {{ data.1.symbol }} {{ data.1.cost|currency }}</h3>

試試這個:

{% for provider in monthly_provider_country %}
    {% for data in provider %}
    <h3>{{ data[0] }} {{ data[1].symbol }} {{ data[1].cost|currency }}</h3>
    {% endfor %}
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM