我刚刚开始学习Django,并按照Antonio Mele在他的书“ Django 2 by Example”中的教程进行了简单的购物车设置。我可以选择产品,然后可以选择数量。这对于一般产品而言效果很好。如果我有定制产品(例如刻笔)怎么办?买方选择数量3,但他希望在钢笔上刻上不同的名称。我该怎么做?
这是控制数量的form.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 %}
答案 0 :(得分:1)
从Django开始就很棒。
对于复杂的商店系统,如果您决定使用预先构建的Django程序包,则已经在后台为您完成了很多工作。
您可以在这里找到所有优质且维护良好的电子商务软件包:https://djangopackages.org/grids/g/ecommerce/
一个很好的起点是阅读django-oscar的文档,这是最好的最新电子商务商店系统。这样,您就可以真正利用django商店挖掘所有机会,并在后台使用可靠的系统。
但是,如果您想坚持学习本教程,可以这样做:
向您的Pen模型添加文本字段,例如engrave_text = models.CharField(default=None)
将engrave_text添加为AddEngravedPenToCartForm之类的表单的表单字段。
像这样,每个单独雕刻的笔都是其自己的单独产品。
亲切的问候, 本