Создавать несколько объектов одновременно
У меня есть представление, которое создает форму с группами и упражнениями. Как я могу сделать, чтобы иметь возможность создавать больше групп и упражнений в шаблоне?
views.py
@login_required
def creaScheda(request):
if request.method == "POST":
form = CreaSchedaForm(request.POST)
if form.is_valid():
schedaName = form.cleaned_data['nome_scheda']
scheda = form.save(commit = False)
scheda.utente = request.user
scheda.save()
gruppi = DatiGruppi(
giorni_settimana = form.cleaned_data['giorni_settimana'],
dati_gruppo = form.cleaned_data['dati_gruppo'],
gruppi_scheda = Schede.objects.get(nome_scheda = schedaName)
)
gruppi.save()
esercizi = DatiEsercizi(
serie = form.cleaned_data['serie'],
ripetizione = form.cleaned_data['ripetizione'],
peso = form.cleaned_data['peso'],
gruppo_single = DatiGruppi.objects.get(gruppi_scheda = scheda.id),
dati_esercizio = form.cleaned_data['dati_esercizio']
)
esercizi.save()
return redirect('/backoffice')
else:
form = CreaSchedaForm()
context = {"form": form}
return render(request, "crea_scheda.html", context)
Решением этой проблемы может быть использование метода bulk_create в менеджере объектов с массивом/списком создаваемых объектов
example
ModelName.objects.bulk_create([
ModelName(title="Model1"),
ModelName(title="Model2"),
ModelName(title="Model3"),
])
где ModelName обозначает имя вашей модели, а ModelName в списке обозначает различные экземпляры/записи класса ModelName/базы данных, которые будут созданы в массовом порядке