【问题标题】:How to configure the django forms to sell custom products?如何配置 django 表单来销售定制产品?
【发布时间】:2019-08-17 05:07:37
【问题描述】:

我刚开始学习 Django,并按照 Antonio Mele 在他的书“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 %}

【问题讨论】:

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


    【解决方案1】:

    很好,你开始使用 Django。

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

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

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

    如果你想坚持你的教程,你可以这样做:

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

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

    这样,每支单独雕刻的笔都是它自己的独立产品。

    亲切的问候, 本

    【讨论】:

    • Django Oscar 是否有很多我需要安装的依赖项?当有很多活动部件时,尝试调试出了什么问题真的很痛苦。我在使用 Django Oscar 之类的主要解决方案或从头开始之间左右为难。我只是担心如果我在 Django Oscar 中遇到了障碍,我学到的东西是不能转移的。
    • 好吧,不要害怕,试试吧。只需: 1.“manage.py mkvirtualenv oscar” 2.“pip install django-oscar”(将安装一个全新的空白版本的 django 仅用于测试) 3. django-admin.py startproject demo_shop。像这样,您可以在不破坏任何东西的情况下测试所有功能。并阅读文档:django-oscar.readthedocs.io/en/releases-1.1/internals/…
    猜你喜欢
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多