繁体   English   中英

如何在模板中分别显示 Django 查询集 dict-key 和 -values?

[英]How to show in Django queryset dict-key and -values seperately in template?

我在 HTML 模板的浏览器中有这个 output:

{'coin__name': 'Bitcoin', 'total': Decimal('1498824')}
{'coin__name': 'Ripple', 'total': Decimal('335227')}

如何在 html 模板中分别显示键和值(不说十进制)?

期望的结果

Bitcoin, 1498824
Ripple , 335227

我在下面提供查询和 html 模板:

视图.py:

test =  filtered_transaction_query_by_user.values('coin__name').annotate( total = (Sum('trade_price' ) * Sum('number_of_coins'))).order_by('-total')

模板.html

<table class="table table-striped">
<tr>
    <th>Current dict pair</th>
    <th>Just the name of the crypto</th>
    <th>Just the price of the crypto</th>
</tr>
{% for item in test %}
<tr> 
    
    <td>{{ item }}</td>   
    <td>{{ }}</td>
    <td>{{ }}</td>

</tr>
{% endfor %}

使用以下代码更新模板:

            {{ test }}   <!--  test is list of dictonaries --> 
            <br>
            {% for item in test %} <!-- Loop to get each item(sub dictonary) from list-->
                <br>
                     {% for key,value in item.items %} <!-- Getting key values pairs from each sub dictonary item --> 
                        {% if forloop.last %} <!-- Checking if last iteration of loop just to add "::" after each value --> 
                            {{ value }} <!-- only displying values not keys from each sub dictionary -->
                        {%else%}
                            {{value }} , 
                        {% endif %}
                    {% endfor %}
                  
            {% endfor %}
        
    
    

请参阅此答案以从结果中删除小数。 Django:在请求值时从查询集注释字段中删除十进制前缀

尝试在循环中从字典中获取键和值:

{% for key, value in test.items %}
<tr> 
    <td>{{ key }}</td>   
    <td>{{ value }}</td>
</tr>
{% endfor %}

如果要格式化十进制值, 请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM