我有五個產品物件,其中 3 個產品的可用性設定為 True,其余為 False,我正在嘗試將結帳狀態按鈕設定為缺貨,即使一個產品的可用性設定為 False。
因為購物車視圖不能使用 slug,{% if product.availability %}沒有意義,也不能使用“for回圈”,否則會創建多個結帳按鈕,有什么方法可以解決這個問題?
模型
class Product(models.Model):
availablity = models.BooleanField()
看法
def cart(request):
products = Product.objects.all()
購物車模板
{% for product in products %}
<p>{product.name}</p>
<p>{product.price}</p>
{% endfor %}
<!--Checkout Status Button-->
{% if product.availability %}
<a href="#">Checkout</a>
{% else %}
<p>Out of stock</p>
{% endif %}
uj5u.com熱心網友回復:
您應該進行所有計算view并僅將單個發送True/False到模板。
例如
products = Product.objects.all()
available = all(x.availability for x in products)
context = {..., "available": available}
{% if available %}
<a href="#">Checkout</a>
{% else %}
<p>Out of stock</p>
{% endif %}
uj5u.com熱心網友回復:
def cart(request):
products = Product.objects.all()
availibility = True
for prod in products:
if prod.availability = False:
availability = False
break
context = { "products" :products, "availability" :availability }
在 HTML 中
if availability` True then show `Checkout` else `Out of Stock`
uj5u.com熱心網友回復:
在您的購物車視圖中,您可以在render()通話中添加背景關系字典嗎?所以基本上:
- 檢查
products可用性條件并將變數設定available為 True/False - 將您的渲染呼叫更改為
render(cart_template, {'products' : products, 'available' : available}) - 更改您的購物車模板以使用
{% if available %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/518172.html
標籤:Pythondjango
上一篇:在腳本執行任務時將變數或訊息發送到頁面(django4)
下一篇:如何使表單欄位不屬于提交的表單
