Django - что не так с моим оператором If?
Я вставил оператор if в свой шаблон - я хочу, чтобы форма появлялась, только если категория товара "Шампанское".
По какой-то причине продукт не отображается для продуктов шампанского.
Вот код
Models.py
CATEGORY=(
(1,'Rum'),
(2,'Gin'),
(3,'Whisky'),
(4,'Champagne'),
(5,'Others'),
)
class Product(models.Model):
name = models.CharField('Product Name', max_length=120, null=True)
category = models.IntegerField(choices=CATEGORY, default=0)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(null=True, max_digits=6, decimal_places=3)
image_url= models.URLField('Image Web Address', blank=True)
product_url = models.URLField('Product Web Address', blank=True)
class Meta:
db_table='Product'
def __str__(self):
return str(self.name)
HTML
{% if product.category == 'Champagne' %}
<div class="d-flex flex-column mt-4">
<a class="btn btn-outline-secondary btn-sm" href="{% url 'ElderFlowerReview' product.id %}">Tasting Notes</a>
</div>
{% endif %}
Forms.py
class DrinkForm(ModelForm):
class Meta:
model = Product
fields = ('name','category', 'description')
labels ={
'name': '',
'category': '',
'description': '',
}
widgets = {
'name': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter name'}),
'category': forms.Select(attrs={'class':'form-control', 'placeholder':'Enter category'}),
'description':forms.TextInput(attrs={'class':'form-control', 'placeholder':'Enter description'}),
}
Вы должны использовать 4 вместо "Champagne" 4 - это значение, а "Champagne" - это метка
HTML
{% if product.category == 4 %}
<div class="d-flex flex-column mt-4">
<a class="btn btn-outline-secondary btn-sm" href="{% url 'ElderFlowerReview' product.id %}">Tasting Notes</a>
</div>
{% endif %}