我想做一個簡單的功能,收集產品 ID 并通過單擊“添加到購物車”按鈕將其添加到用戶的購物車中。我創建了購物車表和產品表,但正在努力尋找將產品添加到購物車的正確功能。任何事情都可以幫助我對 Python 和 Django 非常陌生,并且正在尋找一些幫助以使我走上正軌。
class Cart(models.Model):
cart_id = models.Charfield(primary_key=True)
total = models.DecimalField(max_digits=9,decimal_places=2)
quantity = models.IntegerField()
products = models.ManyToManyField(Product)
class Product(models.Model):
prod_id = models.CharField(max_length=15, null=True)
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=10,decimal_places=2)
description = models.TextField(max_length=1000)
def cart_add(request, prod_id):
item = Product.objects.get(pk=prod_id)
我知道這沒什么用,但有什么幫助,我只是在尋找一些幫助來創建添加到購物車功能
uj5u.com熱心網友回復:
您需要在 Cart 模型和 User 模型之間建立關系,以便您可以將產品保存到相應用戶的購物車。
此外,一個好的方法是添加另一個名為 CartItem 的模型并將產品資訊保存在該模型中,而不是將產品直接存盤到 Cart 模型中。這是因為當我們將產品添加到購物車時,我們可能需要保存并稍后更新有關產品的額外資訊,例如“數量”。
class Cart(models.Model):
cart_id = models.Charfield(primary_key=True)
total = models.DecimalField(max_digits=9,decimal_places=2)
quantity = models.IntegerField()
user = models.OneToOneField(User)
class CartItem(models.Model):
cart = models.ForeignKey(Cart, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
product_quantity = models.IntegerField(default=0)
user = models.OneToOneField(User)
所以在這種情況下,您需要做的就是在添加到購物車視圖中創建一個新的 CartItem 物件:
def cart_add(request, prod_id, qty):
item = Product.objects.get(pk=prod_id)
cart_obj = Cart.objects.get(user=request.user)
Cart.objects.create(cart=cart_obj, product=item, product_quantity=qty)
希望這可以幫助 :)
uj5u.com熱心網友回復:
您需要Cart * 和User之間的關系
class Cart(models.Model):
cart_id = models.Charfield(primary_key=True)
total = models.DecimalField(max_digits=9,decimal_places=2)
quantity = models.IntegerField()
products = models.ManyToManyField(Product)
user = models.OneToOneField(User)
class Product(models.Model):
prod_id = models.CharField(max_length=15, null=True)
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=10,decimal_places=2)
description = models.TextField(max_length=1000)
def cart_add(request, prod_id):
item = Product.objects.get(pk=prod_id)
request.user.cart.add(item)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/519562.html
