Мой цикл for возвращает последнее значение для всей итерации в моем коде Python - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть простой цикл Python for, который перебирает поле объекта (4 product.price) и умножает его на постоянное значение

Он выводит на консоль правильные 4 значения, но при рендерингев шаблоне django все 4 результата имеют одно и то же значение (вычисленное значение последней итерации)

Однако при возврате вместо Print это приводит к следующей ошибке: «объект с плавающей точкой» не имеет атрибута «get»

Просмотр

def reprice(request):
   list = Product.objects.all()
  ......
   for item in list:
        rp = item.price * value_USD
        print (rp)

   return render(request , 'multi/reprice.html', {'list' : list, 'rp' : rp })

шаблон


      {% for item in list %}  
       {{ rp }}
       {% endfor %}

1 Ответ

0 голосов
/ 15 апреля 2019

Независимо от значений, которые содержат переменные при вызове render (), будут значения, поступающие в Django. Просто передайте данные так, как вам нужно, чтобы они появлялись при рендеринге. Не нужно передавать rp, просто передайте список значений, которые вы хотите.

list = Product.objects.all()
return render(request, "multi/reprice.html", {"list": [item.price * value_USD for item in list]})

А потом в Джанго:

{% for item in list %}  
{{ item }}
{% endfor %}
...