¿Как добавить несколько форм, унаследованных от другой формы, с помощью Django?
У меня вопрос, что происходит, когда я нажимаю на знак плюс (+), поля повторяются, чтобы поместить больше данных. Я провел некоторое исследование и увидел, что я могу использовать набор форм, у меня только проблема с размещением кода для представлений. Поскольку я наследую от Parte/forms.py к Presupuestos/forms.py и я не знаю, в Parte/views.py или Presupuestos/views.py делать модификацию для набора форм или как адаптировать его к тому, что у меня уже есть в моих представлениях
Parte/model.py
class Parte(models.Model):
codigo=models.IntegerField()
quantity=models.IntegerField()
unit_price=models.IntegerField()
total_price=models.IntegerField()
tax_free=models.BooleanField()
descripcion=models.TextField(max_length=255,blank=True, null=True)
descuento=models.IntegerField(default=0)
total=models.IntegerField()
def __str__(self):
return f'{self.codigo}: {self.descripcion} {self.quantity} {self.unit_price} {self.total_price} {self.tax_free}{self.descuento}{self.total}'
Parte/forms.py
from django import forms
from django.forms import formset_factory
from .models import Parte
class ParteForm(forms.ModelForm):
class Meta:
model=Parte
fields=['codigo','descripcion','quantity','unit_price','total_price','tax_free']
ParteFormset = formset_factory(ParteForm, extra=0)
Presupuestos/forms.py
class PresupuestosParteForm(forms.ModelForm):
class Meta:
model = Parte
fields = '__all__'
widgets = {
'codigo': forms.TextInput(
attrs={
'class': 'form-control'
}
),
'quantity': forms.NumberInput(
attrs={
'class': 'form-control',
}
),
'unit_price': forms.NumberInput(
attrs={
'class': 'form-control',
'onchange': 'multiplicar()',
}
),
'total_price': forms.NumberInput(
attrs={
'class': 'form-control',
}
),
'tax_free': forms.CheckboxInput(
attrs={
'class': 'form-check-input',
'onclick': 'taxes_free(multiplicar())',
}
),
'descripcion': forms.TextInput(
attrs={
'class': 'form-control'
}
),
'descuento': forms.NumberInput(
attrs={
'class': 'form-control',
'onchange': 'totales()',
}
),
'total': forms.NumberInput(
attrs={
'class': 'form-control',
}
),
}
Presupuestos/views.py
def create_Presupuestos(request):
presupuestosparteform=PresupuestosParteForm(request.POST or None)
if presupuestosclientesform.is_valid():
presupuestosclientesform.save()
return redirect('presupuestos:index')
return render(request,'Presupuestos/presupuestos-forms.html',{ 'presupuestosparteform':presupuestosparteform})
Parte/views.py
def create_Parte(request):
form=ParteForm(request.POST or None)
if form.is_valid():
form.save()
return redirect('parte:index')
return render(request,'Parte/parte-form.html',{'form':form})
Я выделил красным то, что я хочу изменить в своем шаблоне