django 购物系统 - 添加至购物车表单

商品的详情页面的添加至购物车表单

定义form

class ProductAddToCartForm(forms.Form):
    quantity = forms.IntegerField(label='数量',
                                  widget=forms.TextInput(
                                      attrs={
                                          'size': '2',
                                          'value': '1',
                                          'class': 'quantity',
                                          'max_length': '5',
                                      }),
                                  error_messages={'invalid': '请输入有效数量'},
                                  min_value=1,
                                  )
    product_slug = forms.CharField(widget=forms.HiddenInput())

    def __init__(self, request=None, *args, **kwargs):
        self.request = request
        super(ProductAddToCartForm, self).__init__(*args, **kwargs)

    def clean(self):
        # 检查用户浏览器端cookie是否开启
        if self.request:
            if not self.request.session.test_cookie_worked():
                raise forms.ValidationError('需要启用cookie')
        return self.cleaned_data

视图中使用

def show_product(request, product_slug, template_name):
    p = get_object_or_404(Product, slug=product_slug)
    categories = p.categories.filter(is_active=True)
    page_title = p.name
    meta_keywords = p.meta_keywords
    meta_description = p.meta_description
    form = ProductAddToCartForm(request) ##
    return render(request, template_name, locals())

模板中使用

<form action="" method="post">
    {% csrf_token %}
{{form}}
    <input type="submit">
</form>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值