提问者:小点点

在Django模板中循环嵌套的dict


我有一个嵌套的dict,我要将它作为上下文传递给具有以下结构的模板:

cWeeks{
    1: {
           'receivables': { 'customer': 'x', 'amount': 'y', ...}
           'payables': { 'customer': 'x', 'amount': 'y', ...}
       }
    2: {
           etc
       }
}

在我的模板中,我有一个for循环迭代每个数字,然后有一个嵌套的for循环迭代“receivables”中的所有项目。 不幸的是,第二个循环永远不会开始。

这是模板中的相关代码:

{% for cw in cWeeks %}
            <div class="kw1">
                <div class="card">
                    <h5 class="card-header text-center">KW {{ cw }}</h5>
                    <ul class="list-group list-group-flush">
                        {% for receivable in cw.receivables %}
                        <li class="list-group-item zahlung payment-receivable">
                            <div class="payment-content">
                                <div class="typ">Zahlung</div>
                                <div class="kunde">{{ receivable.customer }}</div>
                                <div class="kwSelektor">
                                    <form action="#" method="POST">
                                        <div class="form-group formKwSelektor">
                                            <select class="form-control form-control-sm" id="kwxxSelektor">
                                                <option value="10">KW 10</option>
                                                <option value="11">KW 11</option>
                                            </select>
                                        </div>
                                        <button type="submit" class="btn btn-primary">KW ändern</button>
                                    </form>
                                </div>
                                <div class="betrag">{{ receivable.amount }}</div>
                                <div class="bank">{{ receivable.account }}</div>
                            </div>
                        </li>
                        {% endfor %}
                    </ul>

                </div>
            </div>
        {% endfor %}

我的视图。py:

from django.shortcuts import render
from django.http import HttpResponse

from .models import *

def home(request):
    """ Calendar Weeks payments overview """
    cWeeks = {1: dict(), 2: dict(), 3: dict(), 4: dict()}
    for week in range(1, 5):
        cWeeks[week]['receivables'] = Receivable.objects.all()
        cWeeks[week]['payables'] = Payable.objects.all()
    return render(request, 'cwView.html', {'cWeeks': cWeeks})

非常感谢您的任何建议!


共1个答案

匿名用户

这里也提出了同样的问题:如何在django模板中迭代嵌套字典

如果你检查这个,你很可能会得到你的问题的答案。