'Medicine'对象没有属性'add'错误



我想从药物列表中将药物添加到我的购物车。我创建了一个视图,但是当我单击添加按钮时,它给出了此错误:

属性错误在/cart/3/"医学"对象没有属性"添加">

我希望当用户单击+按钮时,药物将被添加到用户购物车中。我可以从管理面板添加它,但不能从网页添加。这是我的代码。请帮助我。

购物车/视图.py

def update_cart(request, id):
current_user = request.user
cart = Cart.objects.filter().first()
try:
medicine = Medicine.objects.get(id=id)
except Medicine.DoesNotExist:
pass
except:
pass
cart.product.add(medicine)
return HttpResponseRedirect("/cart")

购物车/型号.py

class Cart(models.Model):
user = models.TextField(User)
product = models.OneToOneField(Medicine, on_delete=models.CASCADE, primary_key=True)
total = models.DecimalField(max_digits=100, decimal_places=2, default=0.00)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
active = models.BooleanField(default=True)

**HTML 中的加号按钮 **

<a href="/cart/{{medicine.id}}" class="btn btn-sq-xs btn-success">
<i class="fa fa-plus fa-1x"></i><br/>
</a>

购物车到产品OneToOne关系。所以add在这里行不通。您需要像这样更新代码:

cart.product = medicine
cart.save()

或者你可以把它ManyToMany关系。例如:

class Cart(models.Model):
# rest of the code
product = models.ManyToMany(Medicine)
# rest of the code

最新更新