I am trying to loop through a queryset, get the product object and remove the qty of items ordered from the product’s stock amount.
This is how my model Looks
class CartOrderItem(models.Model):
order = models.ForeignKey(CartOrder, on_delete=models.CASCADE)
product_obj = models.ForeignKey(Product, on_delete=models.CASCADE)
qty = models.IntegerField(default=0)
...
date = models.DateTimeField(auto_now_add=True, null=True, blank=True)
And this is how it looks in the admin section
This is how i ran the forloop
@login_required
def PaymentSuccessView(request):
...
order_items = CartOrderItem.objects.filter(order=order, order__payment_status="paid")
for o in order_items.product_obj:
print(o.title) # print all the products title
print(o.stock_qty) # print the stock qty from the Product model
# I want to substract the CartOrderItem's qty from the Product's stock qty
It then shows this error that says
'QuerySet' object has no attribute 'product_obj'
This error is saying that the queryset for the CartOrderItems
models does not have an attribute "product_obj"
, but i clearly have a 'product_obj'
field in my CartOrderItems
This is how i wanted to substract the items qty from the product stock qty, i am not sure this would work and i haven’t tried it because the error above would not allow me
for o in order_items.product_obj:
o.product_obj.stock_qty -= o.qty
o.save()