Создание счета фактуры для конкретных клиентов в биллинговом программном обеспечении django forms
я пытаюсь создать счет-фактуру для конкретного клиента, сначала в счете должен быть доступен выбор клиента для выбора клиента, после этого мы даем возможность добавлять товары, которые взяты из приложения продукта , вместе с возможностью ввода количества. как я могу реализовать это, используя формы django и dajngo я пытался это сделать, но у меня получается реализовать только вариант выбора клиента , но не выбора товаров из продукта я привожу свои коды models.py form.py и views.py
models.py:
from django.db import models
from customer.models import Customer
from product.models import Product
# Create your models here.
class Invoice_customer_list(models.Model):
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
# date = models.DateField(auto_now_add=True)
# total_amount = models.DecimalField(max_digits=10, decimal_places=2,default=0.00)
def __str__(self):
return f"Invoice # {self.id} -{self.customer.name}"
class Invoice_product_list(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.PositiveBigIntegerField()
forms.py:
from django import forms
from .models import Invoice_customer_list,Invoice_product_list,Product
# Form for the Invoice model
class Invoice_customer_Form(forms.ModelForm):
class Meta:
model = Invoice_customer_list
fields = ['customer']
labels = {
'customer': 'Select Customer',
}
class Invoice_product_form(forms.ModelForm):
class Meta:
model = Invoice_product_list
fields = ['product', 'quantity']
labels = {
'product':'Select Product',
'quantity':'Enter quantity',
}
views.py :
from django.shortcuts import render,redirect
from .forms import Invoice_customer_Form,Invoice_product_form
# Create your views here.
def create_invoice(request):
if request.method == 'POST':
form = Invoice_customer_Form(request.POST)
form_products = Invoice_product_form(request.POST)
if form.is_valid() and form_products.is_valid():
form.save()
form_products.save()
return redirect('invoice_success')
else:
form = Invoice_customer_Form()
form_products = Invoice_product_form()
return render(request, 'invoice/create_invoice.html',{'form':form,'form_products':form_products})