【发布时间】:2020-12-28 13:02:48
【问题描述】:
我正在创建一个电子商务应用程序,但遇到了一个问题,我似乎无法让 Django 显示元组中的第二项。比如我的models.py...
class ProductItem(models.Model):
OPTIONS = [
("RED","Red"),
("DBL","Dark Blue"),
("LBL","Light Blue"),
("DGR","Dark Green"),
("LGR","Light Green"),
("PNK","Pink"),
("GRY","Gray"),
("BLK","Black"),
("BRO","Brown"),
("WHT","White"),
("MAR","Marroon"),
("ORG","Orange"),
("BEG","Beige"),
("GLD","Gold"),
("SLV","Silver"),
("MLT", "MultiColour")
]
product = models.ForeignKey(Product, on_delete=models.CASCADE)
colour = models.CharField(choices=OPTIONS, default="BLK", max_length=20)
quantity_available = models.PositiveIntegerField()
def __str__(self):
return f"{self.product} -> ({self.colour})"
在我看来.py...
def product_detail(request, id):
products = Product.objects.filter(id=id).first()
context={
"product": products,
"options": ProductItem.objects.filter(product=products)
}
return render(request, "store/product_detail.html", context)
最后在我的模板中...
<select id="style">
{% for option in options %}
<option value="{{option.colour}}">{{option.colour]}}</option>
{% endfor %}
</select>
在这种情况下,我们假设应该出现深蓝色。
我希望值是 DBL,正如我在 CHOICES 中提到的那样,并希望为用户显示 Dark Blue。
但在这种情况下,只显示DBL,这是我不想要的。
关于如何解决这个问题的任何想法?
谢谢!
【问题讨论】:
标签: python django django-models django-views django-templates