{% if form.title.errors %}
{% render_field form.title|add_class:"form-control is-invalid" %}
{% for e in form.title.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.title|add_class:"form-control" %}
{% endif %}
{% if form.category.errors %}
{% render_field form.category|add_class:"form-select is-invalid" %}
{% for e in form.category.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.category|add_class:"form-select" %}
{% endif %}
{% if form.price.errors %}
{% render_field form.price|add_class:"form-control is-invalid" %}
{% for e in form.price.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.price|add_class:"form-control" %}
{% endif %}
{% if form.unit.errors %}
{% render_field form.unit|add_class:"form-control is-invalid" %}
{% for e in form.unit.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.unit|add_class:"form-control" %}
{% endif %}
{% if form.weight_grams.errors %}
{% render_field form.weight_grams|add_class:"form-control is-invalid" %}
{% for e in form.weight_grams.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.weight_grams|add_class:"form-control" %}
{% endif %}
{% if form.description.errors %}
{% render_field form.description|add_class:"form-control is-invalid"|attr:"rows:4" %}
{% for e in form.description.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.description|add_class:"form-control"|attr:"rows:4" %}
{% endif %}
{% if form.stock_qty.errors %}
{% render_field form.stock_qty|add_class:"form-control is-invalid" %}
{% for e in form.stock_qty.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.stock_qty|add_class:"form-control" %}
{% endif %}
{% if form.rating.errors %}
{% render_field form.rating|add_class:"form-control is-invalid" %}
{% for e in form.rating.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.rating|add_class:"form-control" %}
{% endif %}
{% if form.reviews_count.errors %}
{% render_field form.reviews_count|add_class:"form-control is-invalid" %}
{% for e in form.reviews_count.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.reviews_count|add_class:"form-control" %}
{% endif %}
{% if form.tags.errors %}
{% render_field form.tags|add_class:"form-control is-invalid"|attr:"placeholder:fresh,local" %}
{% for e in form.tags.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.tags|add_class:"form-control"|attr:"placeholder:fresh,local" %}
{% endif %}
Comma-separated, e.g. fresh,local,organic
{% if form.thumbnail.errors %}
{% render_field form.thumbnail|add_class:"form-control is-invalid" %}
{% for e in form.thumbnail.errors %}
{{ e }}
{% endfor %}
{% else %}
{% render_field form.thumbnail|add_class:"form-control" %}
{% endif %}