Как вывести таблицу в Django из класса с manytomanyfield для всех полей, выбранных для экземпляра?

Я пытаюсь создать табличное представление в Django 3.2, которое будет отображать данные из экземпляра класса:

 class SalesPlan(models.Model):
    customer = models.OneToOneField(Customer, null=True, on_delete=RESTRICT)
    period = models.DateField()
    product = models.OneToOneField(Product, null=True, on_delete=RESTRICT)
    qty = models.DecimalField(max_digits=10, decimal_places=2, null=True)

классы для клиента и продукта:

class Customer(models.Model):
    customer_code = models.CharField(max_length=6, primary_key=True, unique=True)
    customer_name = models.CharField(max_length=100)
    belongs_to_sales_channel = models.ForeignKey(SalesChannel, on_delete=RESTRICT)
    customer_portfolio = models.ManyToManyField(Product)
    date_created = models.DateTimeField(auto_now_add=True, null=True)

class Product(models.Model):
    product_group = models.ForeignKey(ProductGroup, on_delete=RESTRICT)
    product_subgroup = models.ForeignKey(ProductSubGroup, on_delete=RESTRICT)
    item_code = models.CharField(max_length=5, primary_key=True)
    item_name = models.CharField(max_length=100)
    unit_of_measure = models.CharField(max_length=10)
    product_weight = models.DecimalField(max_digits=5, decimal_places=3)
    product_weight_text = models.CharField(max_length=10)

Я пробовал представление на основе функций и представление на основе классов. Представление на основе класса дает мне одну строку для одного продукта, поскольку класс SalesPlan установлен таким образом. Есть ли способ вывести строки для каждого продукта в Customer.customer_portfolio.all() со всеми уже установленными данными и только с количеством для ввода пользователем? Я искал похожие примеры, все, что я нашел, это то, что у меня уже есть: представление на основе класса может отображать форму, для одного экземпляра (только одна строка). Мне не удалось использовать набор форм, сейчас я изучаю, возможно ли это с помощью набора форм.

Я нашел решение! Я сделал представление на основе функции, создал форму для модели, затем создал набор форм для этой формы и передал начальные данные следующим образом:

def create_sales_plan(request, pk):
    customer = Customer.objects.get(customer_code=pk)
    portfolio = customer.customer_portfolio.all()
    initial = []
    for item in portfolio:
        initial.append({'customer': customer, 'product':item})
    SalesPlanFormSet = formset_factory(SalesPlanForm, extra=0)
    formset = SalesPlanFormSet(initial=initial)

Таким образом, набор форм получает начальные данные, которые представляют собой список dicts, который я создал "вручную". Я очень надеюсь, что это поможет другим людям с похожей или такой же проблемой, так как я не смог легко найти никаких ресурсов. Теперь, когда у меня есть предварительно заполненные формы, я буду играть вокруг, чтобы сделать html форму, удобную для ввода данных (скорее всего, html таблицу).

Вернуться на верх