django - 促销代码 - 优惠券代码 - 折扣发生器

bsint 发布于 2019-01-08 cart 最后更新 2019-01-08 22:43 46 浏览

我正在尝试为我已有的购物车创建促销代码。我希望它很简单,比如输入100off来获得100美元的折扣,我收到一个错误,提示“全球名称'PromoCode'未定义”。 models.py

class PromoCode(ModelForm):
        code = models.FloatField(max_length=15)
        discount = models.FloatField(max_length=15)
views.py
def addtocart(request, prod_id):
        if (request.method == 'POST'):
                form = CartForm(request.POST)
                if form.is_valid():
                        newComment = form.save()
                        newComment.session = request.session.session_key[:20]
                        newComment.save()
                        return HttpResponseRedirect('/products/' + str(newComment.product.id))
        else:
                form = CartForm( {'name':'Your Name', 'session':'message', 'product':prod_id} )
return render_to_response('Products/comment.html', {'form': form, 'prod_id': prod_id})
def delItem(request, prod_id):
        addtocart = get_object_or_404(Cart, pk = prod_id)
        prod_id = addtocart.product.id
        addtocart.delete()
        return HttpResponseRedirect('/userHistory/')
def userHistory(request):
            promo = PromoCode.objects.filter(code = code_from_the_form)
            userCart = Cart.objects.filter(session = request.session.session_key[:20])
            totalCost = 0
            for item in userCart:
                    print item
                    totalCost += item.quantity * item.product.prodPrice * 1.06
            return render_to_response('Products/history.html', {'userCart':userCart, 'totalCost' : totalCost})
已邀请:

nsequi

赞同来自:

添加一个包含两个字段的PromoCode模型:代码和折扣。然后,您可以在管理员中添加几个促销代码。 在表单中,只需添加促销代码字段,在提交时,检查代码是否与您的任何PromoCode对象匹配并应用折扣。 (也许还有一些javascript来动态检查代码。我会在这里和那里添加一些检查,以确保你的折扣在0和1(“0.5”)之间,如果你只想在0和100,如果它是一个百分比。只要确保你不能犯错误,如果我必须实施它将是我的恐惧:-)