Сохранить набор форм, передав ему id другого набора форм, в который он вложен

Здравствуйте, у меня есть набор форм с именем groups, внутри которого есть другой набор форм с именем exercises. Моя проблема заключается в сохранении различных упражнений, созданных в форматах, в форматах групп, к которым они принадлежат. Я прилагаю фотографию, чтобы вы лучше поняли ситуацию, на фотографии синие ячейки (упражнения набора форм) должны быть сохранены в первой зеленой ячейке (набор групп)

ПРОСМОТРОВ

def creazioneView(request):
    gruppiFormSet = formset_factory(GruppiForm, extra=1)
    eserciziFormSet = formset_factory(EserciziForm, extra=1)

    if request.method == "POST":
        schede_form = SchedeForm(request.POST)
        gruppi_formset = gruppiFormSet(request.POST, prefix='gruppi')
        esercizi_formset = eserciziFormSet(request.POST, prefix='esercizi')

        if schede_form.is_valid() and gruppi_formset.is_valid() and 
        esercizi_formset.is_valid():
            schedaName = schede_form.cleaned_data['nome_scheda']
            scheda = schede_form.save(commit = False)
            scheda.utente = request.user
            scheda.save()

            for gruppo in gruppi_formset:
                gruppi_instance = gruppo.save(commit = False)
                gruppi_instance.gruppi_scheda = Schede.objects.get(nome_scheda = 
                schedaName)
                gruppoName = gruppi_instance.dati_gruppo
                gruppi_instance.save()

            for esercizi in esercizi_formset:
                esercizi_instance = esercizi.save(commit = False)
                esercizi_instance.gruppo_single = DatiGruppi.objects.get(dati_gruppo 
                = gruppoName)
                esercizi_instance.save()

            return redirect('/lista-gruppi/')

    else:
        schede_form = SchedeForm()
        gruppi_formset = gruppiFormSet(prefix='gruppi')
        esercizi_formset = eserciziFormSet(prefix='esercizi')

    context = {'schede_form': schede_form, 'gruppi_formset': gruppi_formset, 
    'esercizi_formset': esercizi_formset}
    return render(request, "crea.html", context)

МОДЕЛИ

    class Gruppi(models.Model):
     nome_gruppo = models.CharField(max_length=100)


    class Esercizi(models.Model):
     nome_esercizio = models.CharField(max_length=100) 
     gruppo = models.ForeignKey(Gruppi, on_delete = models.CASCADE, related_name = 
     'gruppo')


    class Schede(models.Model):
        nome_scheda = models.CharField(max_length=100)
        data_inizio = models.DateField()
        data_fine = models.DateField()
        utente = models.ForeignKey(User, on_delete = models.CASCADE,related_name = 
        'utente')
  

    class DatiGruppi(models.Model):
        giorni_settimana_scelta = [
            ("LUNEDI","Lunedì"),
            ("MARTEDI","Martedì"),
            ("MERCOLEDI","Mercoledì"),
            ("GIOVEDI","Giovedì"),
            ("VENERDI","Venerdì"),
            ("SABATO","Sabato"),
            ("DOMENICA","Domenica")
       ]
       giorni_settimana = MultiSelectField(
           choices = giorni_settimana_scelta,
           default = '- '
       )
       dati_gruppo = models.ForeignKey(
           Gruppi,
           on_delete = models.CASCADE,
           related_name = 'dati_gruppo'
       )
       gruppi_scheda = models.ForeignKey(
           Schede,
           on_delete = models.CASCADE,
           related_name = 'gruppi_scheda'
       )

   class DatiEsercizi(models.Model):
       serie = models.IntegerField()
       ripetizione = models.IntegerField()
       peso = models.DecimalField( max_digits = 4, decimal_places = 1, blank = True, null 
       = True)
       dati_esercizio = models.ForeignKey(Esercizi,on_delete = models.CASCADE, 
       related_name = 'dati_esercizio')
       gruppo_single = models.ForeignKey(DatiGruppi, on_delete = models.CASCADE, 
       related_name = 'gruppo_single')
Вернуться на верх