Stock quantity update when and order is placed in Django app

I have a product and order create models where I'd like to update the quantity of the product when and order is placed for that product. Using a ForeignKey, I am able to select the product but so far I'm definitely missing something as nothing i have tried seems to work, please take a look at my code below and assist. Thank you in advance

Models.py

#Product Model
class Product(models.Model):
    SKU = models.CharField(max_length=30, unique=False,default='input SKU')
    Category = models.CharField(max_length=200,default='Input Category')
    Name = models.CharField(max_length=250,unique=False, default='Input product name')
    Platform = models.CharField(max_length=50, default='platform')
    Price = models.PositiveIntegerField(default='price')    
    Discount = models.PositiveIntegerField(default='discount')
    Prod_Qty = models.PositiveIntegerField(unique=False, default=0)
    Date = models.CharField(max_length=30, default='Char field')
    Cost = models.PositiveIntegerField()
    created_date = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.Name

class Order(models.Model):
    STATUS_CHOICE = (
        ('pending', 'Pending'),
        ('decline', 'Decline'),
        ('approved', 'Approved'),
        ('processing', 'Processing'),
        ('complete', 'Complete'),
        ('bulk', 'Bulk'),
    )
    SALE_CHOICE = (
        ('platform1', 'platform1'),
        ('platform2','platform2')
  
    )
    supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField(null=False)
    sale_type = models.CharField(max_length=50, choices=SALE_CHOICE, null=True)
    cost_goods_sold = models.PositiveIntegerField(default=6)
    shipping_fee = models.PositiveIntegerField(null=False)
    shipping_cost = models.PositiveIntegerField(default=0)
    buyer = models.ForeignKey(Buyer, on_delete=models.CASCADE, null=True)
    manifest = models.ForeignKey(Manifest, on_delete=models.CASCADE)
    status = models.CharField(max_length=10, choices=STATUS_CHOICE)
    created_date = models.DateField(auto_now_add=True)

    def __str__(self):
        return self.product.Name

Views.py

# Product views
@login_required(login_url='login')
def create_product(request):
    forms = ProductForm()
    context = {"form": forms}
    if request.method == 'POST':
        forms = ProductForm(request.POST)
        context['form'] = forms
        if forms.is_valid():
            try:
                forms.save()
                return HttpResponseRedirect(reverse('product-list'))
            except IntegrityError:
                print ("Print data entry to db failed")
                return render(request, 'store/create_product.html', context)

        else:
            print('invalid form received')
            return render(request, 'store/create_product.html', context)        
    else:
        return render(request, 'store/create_product.html', context)


class ProductListView(ListView):
    model = Product
    template_name = 'store/product_list.html'
    context_object_name = 'product'


# Order views
@login_required(login_url='login')
def create_order(request):
    forms = OrderForm()
    if request.method == 'POST':
        forms = OrderForm(request.POST)
        if forms.is_valid():
            supplier = forms.cleaned_data['supplier']
            product = forms.cleaned_data['product']
            quantity = forms.cleaned_data['quantity']
            sale_type = forms.cleaned_data['sale_type']
            buyer = forms.cleaned_data['buyer']            
            manifest = forms.cleaned_data['manifest']
            status = forms.cleaned_data['status']
            order_item = Order.objects.create(            
                supplier=supplier,
                product=product,
                quantity=quantity,
                sale_type=sale_type,
                buyer=buyer,
                manifest=manifest,
                status='pending'
            )
            remaining_stock = Product.objects.get(id=Product.Name.id)
            remaining_stock.Prod_Qty = remaining_stock.Prod_Qty - order_item.quantity
            remaining_stock.save()


            return redirect('order-list')
    context = {
        'form': forms
    }
    return render(request, 'store/create_order.html', context)

maybe you can use signals

this is a simple example but you can build in product and order

def save_profile(sender, instance, **kwargs):
    instance.profile.save()

post_save.connect(save_profile, sender=User)

here the docs

Back to Top