Как добавить строку динамически в наборе форм django
В моем приложении django у меня есть две модели, т.е. Product и Real, которые связаны отношениями "многие ко многим".
Для динамического добавления данных в мои таблицы я хочу использовать javascript для добавления строки или удаления строки в моих формах, но не могу этого сделать.
Вот подробности:
Models.py
from dataclasses import Field
from django.db import models
class Product(models.Model):
name = models.CharField(max_length = 150)
quantity = models.IntegerField()
cost = models.DecimalField(max_digits=15, decimal_places=0)
sell = models.DecimalField(max_digits=15, decimal_places=0)
class Real(models.Model):
payment_id = models.CharField(max_length = 150)
company = models.CharField(max_length = 150)
product = models.ManyToManyField(Product, symmetrical=False)
Forms.py
from .models import Product, Real
from django import forms
from django.forms import formset_factory
class ProductForm(forms.Form):
name = forms.CharField()
cost = forms.DecimalField()
sell = forms.DecimalField()
quantity = forms.IntegerField()
ProductFormset = formset_factory(ProductForm)
class RealForm(forms.Form):
payment_id = forms.CharField()
company = forms.CharField()
product = ProductFormset()
Views.py
from django.shortcuts import render, redirect
from django.forms import modelformset_factory
from .models import Product, Real
from .forms import RealForm, ProductForm, ProductFormset
def post(request):
if request.POST:
form = Real(request.POST)
form.product_instances = ProductFormset(request.POST)
if form.is_valid():
real = Real()
real.payment_id = form.cleaned_data['payment_id']
real.save()
if form.product_instances.cleaned_data is not None:
for item in form.product_instances.cleaned_data:
product = Product()
product.name = item['name']
product.cost = item['cost']
product.sell = item['sell']
product.sell = item['quantity']
product.save()
real.product.add(product)
real.save()
else:
form = RealForm()
return render(request, 'test.html', {'form':form})
def my_formset_view(request):
response = None
formset_class = modelformset_factory(model=Product, fields=('name', 'cost', 'sell'), extra=0, can_delete=True)
if request.method == 'POST':
formset = formset_class(data=request.POST)
if formset.is_valid():
formset.save()
response = redirect(to='my_success_view')
else:
formset = formset_class()
if response is None:
response = render(
request, 'test.html', dict(formset=formset))
return response
test.html
но django ничего не выводит
введите описание изображения здесь