Skip to content Skip to sidebar Skip to footer

How To Insert Multiple Data In Django To Django Form?

I want to insert multiple row into my database from form2. Below are my codes first model.py class DataPribadiSiswa(models.Model): SiswaID = models.AutoField(primary_key=True)

Solution 1:

To simplify working with related objects you can use Inline formsets

You can implement it this way:

from django.forms importinlineformset_factoryFormSet2= inlineformset_factory(DataPribadiSiswa, RiwayatSekolah, extra=2) 

Now in view try this:

deftambah_siswa(request):
    form = datasiswa(request.POST orNone)
    FormSet2 = inlineformset_factory(DataPribadiSiswa, RiwayatSekolah, extra=2, fields=('SekolahID','SiswaID_FK','SekolahNama','SekolahThMasuk','SekolahThKeluar','SekolahKet'))
    if request.method == 'POST':
        if form.is_valid():
            siswa_instance = form.save()
            form2 = FormSet2(request.POST orNone, instance=siswa_instance) 
            if form2.is_valid():
                form2.save()
            return redirect('index')
    form2 = FormSet2(request.POST orNone) 
    formall={}
    formall['form'] = form
    formall['form2'] = form2
    return render(request, 'siswa/tambah_siswa.html', formall)

And in template:

{{ form2.management_form }}
{{ form2.as_table }}

or

{{ form2.management_form }}    
{% for frm in form2 %}
    {{ frm.as_table }}
{% endfor %}

Post a Comment for "How To Insert Multiple Data In Django To Django Form?"