Для каждого набора форм, чтобы соответствовать автоматически изменяемому значению, взятому из поля модели

У меня есть набор форм, настроенный так, чтобы иметь дополнительно = 6. pasto - это переменная, которая позволяет мне выбирать, какой именно pasto, но я хотел бы, чтобы эти шесть автоматически устанавливались с 6 значениями, присутствующими в наборе форм. Поэтому, когда я сохраняю набор форм, он сохраняет в поле pasto значение 1, если это первая форма набора, 2, если вторая и т.д. ...

моя модель

class PianoDay(models.Model):
    scelta_pasto = [
        ("1","Colazione"),
        ("2","Spuntino mattina"),
        ("3","Pranzo"),
        ("4","Merenda"),
        ("5","Cena"),
        ("6","Spuntino sera")
    ]
    pasto = models.CharField(
        choices = scelta_pasto,
        max_length = 300,
        default = '-'
    )
    kcal = models.IntegerField(default = 0)
    grassi = models.IntegerField(default = 0)
    carboidrati = models.IntegerField(default = 0)
    proteine = models.IntegerField(default = 0)
    piano_day = models.ForeignKey(
        PianoSingleDay,
        on_delete = models.CASCADE, 
        related_name = 'piano_day'
    )

form

class PianoDayForm(forms.ModelForm):

    class Meta:
        model = models.PianoDay
        exclude = ['piano_day', 'pasto']

view

@login_required
def PianoSingleView(request, id):
    piano = get_object_or_404(models.Piano, id = id, utente_piano = request.user)
    datiFormSet = formset_factory(PianoDayForm, extra = 6)

    if request.method == 'POST':
        giorno_form = PianoSingleDayForm(request.POST, piano = piano, prefix = 'giorno')
        dati_formset = datiFormSet(request.POST, prefix = 'dati')

        if giorno_form.is_valid():
            day_instance = giorno_form.save(commit= False)
            day_instance.single_piano = piano
            day_instance.save()

            if dati_formset.is_valid():
                for dato in dati_formset:
                    if dato.has_changed():
                        dato_istance = dato.save(commit = False)
                        dato_istance.piano_day = day_instance

                        dato_istance.pasto = ??
                        dato_istance.save()

                return redirect('gestione-piano', id = piano.id)

    else:
        dati_formset = datiFormSet(prefix='dati')
        giorno_form = PianoSingleDayForm(piano = piano, prefix = 'giorno')

    context = {'piano': piano, 'giorno_form': giorno_form, 'dati_formset': dati_formset}
    return render(request, 'crud/create/gestione_piano_single.html', context)

enter image description here

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