2 回答

TA貢獻1883條經驗 獲得超3個贊
您在模板中使用了錯誤的變量名稱。它應該是 display_cart 而不是 dict_of_phones。見下文:
{% for phone in display_cart %}
<tr>
<td>{{phone.model}}</td>
<td>{{phone.year}}</td>
<td>${{ "%.2f" % phone.price}}</td>
<td>${{ "%.2f" % phone.price}}</td>
</tr>
{% endfor %}

TA貢獻1810條經驗 獲得超5個贊
我會將電話列表傳遞到您的模板中,而不是電話字典。此外,您dict_of_phones就是只設置到您的手機項目的最后一個值,因為你覆蓋了每一次它的價值dict_of_phones = phone。所以dict_of_phones實際上只是items 中最后一個項目給出的單個電話項目:phone = get_phone_by_id(item)。也許你可以修改你的代碼來創建一個電話列表?然后將此列表傳遞到您的jinja2模板中,大致如下:
@phones.route("/cartt")
def shopping_cart():
total_price = 0
if "cart" not in session:
flash("There is nothing in your cart.")
return render_template("phones/cart.html", display_cart = {}, total = 0)
else:
# Assuming items is correct, looks off
items = [j for i in session["cart"] for j in i]
phones = []
for item in items:
phone = get_phone_by_id(item)
print(phone.id)
# assuming phone has id,model,year, and price attributes
phones.append[phone]
# note total_price of your cart not currently being used in your template
total_price += phone.price
return render_template('phones/cart.html', display_cart=phones, total = total_price)
然后在您的模板中,您可以執行以下操作:
{% for phone in display_cart %}
<tr>
<td>{{phone.model}}</td>
<td>{{phone.year}}</td>
<td>${{ "%.2f" % phone.price}}</td>
<td>${{ "%.2f" % phone.price}}</td>
</tr>
{% endfor %}
希望這有幫助!
添加回答
舉報