产品未添加到购物车“Django 管理”中

时间:2021-06-15 04:11:23

标签: python django django-models django-views django-templates

我无法将产品添加到购物车中。我想看看产品是否添加到购物车。但这个过程没有发生。我使用 Django 作为后端,使用 PostgresSQL 作为 DB,使用 HTML、CSS 和 Javascript 作为后端。

代码在这里:

views.py

PRODUCT DETAIL

class product_detail(View):
    def get(self, request, pk):
        product_detail = Product.objects.get(pk=pk)
        return render(request, 'detailpage/productdetail.html', {'product_detail':product_detail})

ADD TO CART

def addProduct(request):
    user = request.user
    product_id = request.GET.get('product_id')
    product_cart = Product.objects.get(id=product_id)
    Cart(user=user, product=product_cart).save
    return render(request, 'cart/addtocart.html')

urls.py

app_name = 'main'
urlpatterns = [
    path('product_detail/<int:pk>', views.product_detail.as_view(), name='product_detail'),
    path('addProduct/', views.addProduct, name ='addProduct'),
]

productdetail.html

...
<form action="/addProduct"> 
  <input type="hidden" name="product_id" value="{{product_detail.id}}" id="product_id">   
  <button type="submit" class="btn btn-info">Add</button> 
</form>
...

models.py

class Cart(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField(default=1)

    def __str__(self):
        return str(self.id)

点击添加按钮后地址栏中的网址格式

http://127.0.0.1:8000/addProduct/?product_id=2342

但在此之后产品也没有添加到 Django 购物车中 enter image description here

1 个答案:

答案 0 :(得分:2)

您没有调用 save() 方法。

def addProduct(request):
    user = request.user
    product_id = request.GET.get('product_id')
    product_cart = Product.objects.get(id=product_id)
    Cart(user=user, product=product_cart).save()
    return render(request, 'cart/addtocart.html')