gpt4 book ai didi

python - 如何查看 django 模板列表中是否存在某个值。尝试使用 IN 运算符但不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:15 25 4
gpt4 key购买 nike

我正在尝试动态启用按钮,但 html 上的 IN 运算符不起作用。我也尝试将所有内容都转换为字符串,但仍然不起作用。

模型.py

class Product(models.Model):
name=models.CharField(max_length=100)
image=models.ImageField(default='default.jpg',upload_to='productimages')
description=models.TextField()
category=models.CharField(max_length=100)
price=models.FloatField()

def __str__(self):
return f'{self.name}'

class Cart(models.Model):
cart2user= models.ForeignKey(User, on_delete=models.CASCADE)
cart2product=models.ForeignKey(Product, on_delete=models.CASCADE)
quantity=models.IntegerField(default=1)

views.py

def home(request):
productobj=Product.objects.all()
cartobj=Cart.objects.filter(cart2user=request.user)
cartobjlist=[x.cart2product for x in cartobj]
print(cartobjlist)
return render(request,'home.html',{'productobj':productobj,'cartobjlist':'cartobjlist'})

home.html

 {% for pobj in productobj%}
<div class="col-xl-3 eachproduct">
<form action="{%url 'home'%}" method="GET">
{% csrf_token%}
<img src="{{pobj.image.url}}" height="300px" width="100%">
<h3 class="name" name="{{pobj}}" value={{pobj}}>{{pobj.id}}</h3>
<h3 class="price" name="price" value={{pobj.price}}>${{pobj.price}}</h3>
{% if pobj in cartobjlist %}
<a href="{% url 'cart'%}" class="btn buttoncart">Go to cart</a>
{% else %}
<a href="addtocart/{{pobj.id}}" class="btn buttoncart">Add to cart</a>
{%endif%}
</form>
</div>
{%endfor%}

最佳答案

没有将列表传递给模板,而是将一个名为'cartobjlist'字符串传递给模板。确实:

{'productobj':productobj,'cartobjlist':<s>'cartobjlist'</s>})

话虽这么说,我强烈建议您更有效地获取产品,并进一步使用集合来执行更快的查找,例如:

def home(request):
productobj = Product.objects.all()
cartobjlist = <b>set(Product.objects.filter(cart__cart2user=request.user))</b>
return render(
request,
'home.html',
{'productobj':productobj,'cartobjlist':<b>cartobjlist</b>}
)

关于python - 如何查看 django 模板列表中是否存在某个值。尝试使用 IN 运算符但不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60248135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com