Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提交前保存或编辑表单的最佳方式是什么_Python_Django_Django Forms - Fatal编程技术网

Python 提交前保存或编辑表单的最佳方式是什么

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

保存前编辑表单的最佳方式是什么,尤其是使用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)
     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为您解答,以及文档中引用的实例