广告区

广告区


本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

同时创建多个对象

发布于2022-05-18 03:20     阅读(670)     评论(0)     点赞(1)     收藏(3)



我有这个视图,它创建了一个包含组和练习的表单。如何才能在模板中创建更多组和练习?

视图.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 方法以及要创建的对象的数组/列表

例子

ModelName.objects.bulk_create([
    ModelName(title="Model1"),
    ModelName(title="Model2"),
    ModelName(title="Model3"),
])

其中 ModelName 是指您的模型的名称,列表中的 ModelName 是指要批量创建的 ModelName 类/数据库的不同实例/记录







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1523231/c441b460d98cc5e1cc1d/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0
收藏该文
已收藏

评论内容:(最多支持255个字符)