调用时对象将被保存一次
self.object.save()
,当你打电话时
super().form_valid(form)
.
一种方法是在
form_valid
方法。
def form_valid(self, form):
researcher = Researcher.objects.get(user_id=self.request.user.id)
self.object = form.save(commit=False)
self.object.researcher = researcher
self.object.save()
return redirect(self.success_url)
另一种选择是将研究者分配给表单实例,然后调用
super(...).form_valid()
保存表单并重定向。
def form_valid(self, form):
researcher = Researcher.objects.get(user_id=self.request.user.id)
form.instance.researcher = researcher
return super(ResearcherPrizeCreateView, self).form_valid(form)