2012-04-25 133 views
0

我正在尝试为我已有的购物车创建促销代码。我希望它很简单,比如输入100off来获得100美元的折扣,我收到一个错误,说“全球名称'PromoCode'没有被定义”。django - 促销代码 - 优惠券代码 - 折扣生成器

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}) 

回答

0

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

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

(也许有一点JavaScript来检查代码,并且我会在这里和那里添加一些检查以确保您的折扣在0和1之间(“0.5”),如果您只是想如果它是一个百分比,那么在0到100之间的乘法运算就好,只要确保你不会犯这个错误,那将是我的恐惧,如果我必须实现它:-)

+0

我创建了模型,但是我我不知道该从哪里出发,我并不担心检查代码,因为这是针对一个班级的基本电子商务网站,再次感谢您的帮助。我添加了新的模型,是否正确?我很抱歉,我仍然是新的发展。 – 2012-04-25 14:47:01

+0

我会把折扣变成一个floatfield(或者如果你去百分比,则是整数场)。你可能有一个django视图,用于显示购物卡和对添加/删除项目事件做出反应的表单。在那里添加一个额外的字段(“促销代码”),然后做一个PromoCode.objects.filter(code = code_from_the_form)来查看是否有一些促销折扣需要应用。 – 2012-04-25 18:54:09

+0

我得到一个错误的全球名称'PromoCode'没有定义,我发布了我的模型和上面的意见,感谢您抽出时间 – 2012-04-25 19:08:35