如何配置django表单以销售定制产品?

时间:2019-03-26 17:58:45

标签: django python-3.x django-forms

我刚刚开始学习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 %}

1 个答案:

答案 0 :(得分:1)

从Django开始就很棒。

对于复杂的商店系统,如果您决定使用预先构建的Django程序包,则已经在后台为您完成了很多工作。

您可以在这里找到所有优质且维护良好的电子商务软件包:https://djangopackages.org/grids/g/ecommerce/

一个很好的起点是阅读django-oscar的文档,这是最好的最新电子商务商店系统。这样,您就可以真正利用django商店挖掘所有机会,并在后台使用可靠的系统。

但是,如果您想坚持学习本教程,可以这样做:

  1. 向您的Pen模型添加文本字段,例如engrave_text = models.CharField(default=None)

  2. 将engrave_text添加为AddEngravedPenToCartForm之类的表单的表单字段。

像这样,每个单独雕刻的笔都是其自己的单独产品。

亲切的问候, 本