【问题标题】:django - promo code - coupon code - discount generatordjango - 促销代码 - 优惠券代码 - 折扣生成器
【发布时间】:2012-04-25 07:04:29
【问题描述】:

我正在尝试为我已有的购物车创建促销代码。我希望它很简单,例如输入 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})

【问题讨论】:

    标签: django cart discount coupon


    【解决方案1】:

    添加一个包含两个字段的 PromoCode 模型:代码和折扣。然后,您可以在管理员中添加几个促销代码。

    在表单中,只需添加促销代码字段,然后在提交时检查代码是否与您的任何促销代码对象匹配并应用折扣。

    (也许还有一点 javascript 来即时检查代码。如果您只想乘以,我会在这里和那里添加一些检查以确保您的折扣在 0 和 1(“0.5”)之间如果它是一个百分比,则在 0 到 100 之间。只要确保你不会犯错,如果我不得不实施它,那将是我的恐惧:-)

    【讨论】:

    • 我创建了模型,但我不知道从哪里开始,我并不非常担心检查代码,因为这是一个用于课程的基本电子商务网站,再次感谢你的帮助。我在上面添加了新模型,对吗?很抱歉我还是新手。
    • 我会将折扣转换为浮点字段(如果您选择百分比,则为整数字段)。您可能有一个 django 视图,其中包含一个用于显示购物卡并对添加/删除项目事件做出反应的表单?在此处添加一个额外的字段(“促销代码”)并执行 PromoCode.objects.filter(code=code_from_the_form) 以查看您是否必须申请一些促销折扣。
    • 我收到一个错误全局名称“PromoCode”未定义,我在上面发布了我的模型和视图,感谢您抽出宝贵时间
    • (a) 您必须从 models.py 显式导入 views.py 中的 PromoCode。变量不只是突然出现:-) (b) 你能恢复你原来的问题吗? stackoverflow 问题应该是一个适当的通用问题,而不是复制/粘贴代码的地方。
    • 好的,我重做了问题,并导入了 PromoCode 模型,但是现在我收到 type object 'PromoCode' has no attribute 'objects'
    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2012-12-27
    相关资源
    最近更新 更多