我的for循环返回我的python代码中所有迭代的最后一个值

时间:2019-04-14 22:52:58

标签: python django django-queryset

我有一个简单的Python for循环,该循环遍历对象字段(4 product.price)并乘以一个常数值

它将在控制台中打印正确的计算出的4个值,但是在django模板中呈现时,所有4个结果都具有相同的值(上次迭代的计算值)

但是使用Return而不是Print会带来以下错误 'float'对象没有属性'get'

查看

else
  return (tree->left, x)
  return (tree->right, x)

模板

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 })

1 个答案:

答案 0 :(得分:0)

在调用render()时变量包含的所有值将是到达Django的值。 只需根据需要传递数据即可在呈现数据时将其显示出来。无需传递rp,只需传递所需的值列表即可。

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

然后在Django中

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