2012-04-25 206 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