Python 提交前保存或编辑表单的最佳方式是什么
保存前编辑表单的最佳方式是什么,尤其是使用CreateView CBV 1) 在Python 提交前保存或编辑表单的最佳方式是什么,python,django,django-forms,Python,Django,Django Forms,保存前编辑表单的最佳方式是什么,尤其是使用CreateView CBV 1) 在表单中,valid()函数如下代码所示: def form_valid(self, form): form.instance.user = self.request.user print(form.instance) print(form.instance.user) return super().form_valid(form) d
表单中,valid()
函数如下代码所示:
def form_valid(self, form):
form.instance.user = self.request.user
print(form.instance)
print(form.instance.user)
return super().form_valid(form)
def save(self, commit=True):
instance = super().save(commit=False)
print(instance)
if self.request.user and instance.user is None:
instance.user=self.request.user
instance.save()
return instance
在前面的代码中,当我print(form.instance)
在分配任何东西之前,它会给出None
这个代码中instance
代表的内容
2) 在ModelForm的save()
函数中,使用以下代码:
def form_valid(self, form):
form.instance.user = self.request.user
print(form.instance)
print(form.instance.user)
return super().form_valid(form)
def save(self, commit=True):
instance = super().save(commit=False)
print(instance)
if self.request.user and instance.user is None:
instance.user=self.request.user
instance.save()
return instance
我个人更喜欢设置
实例的第二种解决方案。user
谢谢,@aliva为您解答,以及文档中引用的实例