Словарь рендеринга Django

#python #django

#python #django

Вопрос:

Почему я не могу получить доступ к dict, который я создаю здесь:

 def kalkuler(request):

    fotlister = Produkt.objects.filter(under_kategori__navn__iexact="lister")
    kalkuler = ProduktKalkureing.objects.all()

    beregning = {}

    if request.method == "POST":
        omkrets = request.POST['omkrets']
        print(omkrets)
        for i in kalkuler:
            kalk = math.ceil((int(omkrets)/i.lengde)*1000)

            add = ({'produkt_tittel': i.produkt.produkt_tittel,
                    'produkt_bilde': i.produkt.produkt_bilde,
                    'produkt_info': i.produkt.produkt_info,
                    'produkt_link': i.produkt.produkt_link,
                    'pris_heltall': i.produkt.pris_heltall,
                    'antall_kalk': kalk,
                    'total_kost': kalk * i.produkt.pris_heltall
                    })

            beregning.update(add)

    print(beregning)

    context = {'kalkuler': kalkuler, 'beregning': beregning}

    return render(request, 'frontend/kalkuler/fotlist_kalkuler.html', context)
  

Со стандартным кодом django?

 {% for b in beregning %}
   {{b.produkt_bilde}}
{% endfor %}
  

Также, когда я создаю словарь, он добавляет только последнее значение. Как мне сделать так, чтобы он добавлял каждое значение.

Ответ №1:

Для того, чего вы, кажется, достигаете, вам нужно list вместо dict

 def kalkuler(request):
    ...
    beregning = []
    ...
        beregning.append(add)
    ...