Для каждого набора форм, чтобы соответствовать автоматически изменяемому значению, взятому из поля модели
У меня есть набор форм, настроенный так, чтобы иметь дополнительно = 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)