我正在尝试为我已经拥有的购物车创建促销代码。我希望它很简单,例如键入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})
答案 0 :(得分:0)
添加一个包含两个字段的PromoCode模型:代码和折扣。然后,您可以在管理员中添加几个促销代码。
在表单中,只需添加促销代码字段,在提交时,检查代码是否与您的任何PromoCode对象匹配并应用折扣。
(也许还有一些javascript来动态检查代码。我会在这里和那里添加一些检查以确保你的折扣在0到1(“0.5”)之间,如果你只是想要倍增如果它是一个百分比,那么在0和100之间。只要确保你不会犯错误,如果我必须实施它,那将是我的恐惧: - )