在我的transaction.atomic
中将form_valid
的{{1}}设置为有意义吗?
CreateView
答案 0 :(得分:1)
如果您的表单具有多对多字段,则事务装饰器将确保保存实例的查询和多对多字段在同一事务中运行。
如果您的表单没有多对多字段,那么将只有一个SQL查询来保存行,并且不需要进行事务处理。
顺便说一句,您的return语句重复了super().form_valid(form)
的工作。您可以进行return super().form_valid(form)
,也可以明确地调用save()
。
@transaction.atomic
def form_valid(self, form):
self.instance = form.save(commit=False)
self.instance.event = self.request.event
self.instance.save()
self.instance.save_m2m() # if you have m2m fields
return HttpResponseRedirect(self.get_success_url())