django - 如何在 Django 中从购物车中删除产品?
问题描述
我正在编写从购物车中删除产品的代码,但我遇到了一些问题。首先是当我点击删除时,产品没有从购物车中删除,其次是,在我的 urls.py 中,我在 id 上添加了正则表达式从购物车中删除产品。但是当我单击删除时,该 ID 未显示在 URL 中。
视图.py
def remove_from_cart(request,id):
try:
the_id=request.session['cart_id']
cart = Cart.objects.get(id=the_id)
except:
return HttpResponseRedirect(reverse("cart"))
cartitem=CartItem.objects.get(id=id)
cartitem.cart=None
cartitem.save()
return HttpResponseRedirect(reverse("cart"))
模型.py
class CartItem(models.Model):
cart=models.ForeignKey('Cart',on_delete=models.SET_NULL,null=True,blank=True)
product=models.ForeignKey(Product,on_delete=models.SET_NULL,null=True,blank=True)
accessory = models.ForeignKey(Accessories,on_delete=models.SET_NULL,null=True,blank=True)
quantity=models.IntegerField(default=1)
updated = models.DateTimeField(auto_now_add=True,auto_now=False)
line_total=models.DecimalField(default=10.99,max_digits=1000,decimal_places=2)
timestamp = models.DateTimeField(auto_now_add=True,auto_now=False)
def __unicode__(self):
try:
return str(self.cart.id)
except:
return self.product.title
网址.py
url(r'^cart/(?P<id>\d+)/$', remove_from_cart, name='remove_from_cart'),
模板.html
<td><a href="{% url 'remove_from_cart' item.id %}">Remove</a></td>
请如果有人可以提供帮助,将不胜感激?
注意:我在 stackoverflow 上搜索了不同的链接,但没有任何帮助。
解决方案
你向模板发送什么查询,你能提供吗?
def remove_from_cart(request, id):
the_id = request.session['cart_id']
card = Cart.objects.filter(id=the_id)
if card.exists():
cartitem = CartItem.objects.filter(card_id=card.first().id)
if cartitem.exists():
cartitem.delete()
return HttpResponseRedirect(reverse("cart"))
return HttpResponseRedirect(reverse("cart"))
推荐阅读
- javascript - React 中的匿名类
- c# - 是否可以为 Int32 和 Int64 创建扩展方法?
- python-2.7 - 为 ssh 连接执行 python 脚本不起作用
- rust - 如何创建具有多个特征边界的特征对象?
- java - 如何设置 Scala/Java 工作流程以通过 jumpserver 远程部署 jar 和远程调试?
- mongodb - Meteor collection2 不在客户端验证
- python - Pandas concat 数据框行似乎索引
- node.js - 你如何创建 node-soap wsdl 文件?
- scala - 如何使用maven pom.xml中的application.conf文件进行flyway配置
- html - CSS 样式框垂直在 Mozilla Firefox 中不起作用