Я только начал изучать Django, и у меня есть простая настройка корзины покупок, следуя уроку Антонио Меле в его книге «Django 2 by Example». Я могу выбрать продукты, и тогда количество будет выбором. Это прекрасно работает для универсальных продуктов. Что делать, если у меня есть нестандартные изделия, такие как ручки с гравировкой? Покупатель выбирает количество 3, но он хочет, чтобы на ручках были выгравированы разные имена. Как бы я это сделал?
Вот код для forms.py, который контролирует количество.
from django import forms
PRODUCT_QUANTITY_CHOICES = [(i, str(i)) for i in range(1, 11)]
class CartAddProductForm(forms.Form):
quantity = forms.TypedChoiceField(choices=PRODUCT_QUANTITY_CHOICES, coerce=int)
update = forms.BooleanField(required=False, initial=False, widget=forms.HiddenInput)
и соответствующая часть шаблона HTML выглядит как
{% for item in cart %}
{% with product=item.product %}
<tr>
<td>{{ product.name }}</td>
<td>
<form action="{% url "cart:cart_add" product.id %}" method="post">
{{ item.update_quantity_form.quantity }}
{{ item.update_quantity_form.update }}
<input type="submit" value="Update">
{% csrf_token %}
</form>
</td>
<td><a href="{% url "cart:cart_remove" product.id %}">Remove</a></td>
<td class="num">${{ item.price }}</td>
<td class="num">${{ item.total_price }}</td>
</tr>
{% endwith %}
{% endfor %}