我无法理解为什么我们使用form.save(commit=False)
而不是简单地在form.save
中使用Django-views
的原因。有人可以解释一下两者的区别和必要性吗?
答案 0 :(得分:0)
FROM python:3.6
ENV PYTHONPATH /root/files
# install the 'cx_Oracle' module
RUN apt-get -y update && python3 -m pip install cx_Oracle --upgrade
WORKDIR ./
COPY myfile.py ./
CMD [ "python3", "myfile.py" ]
。
主要用例是,如果您的ModelForm不包含模型的所有必填字段。
您需要将此表单保存在数据库中,但是由于您没有提供所有必填字段,因此会出现错误。
因此解决方案将是使用commit = False保存表单,然后您可以手动定义所需的值,然后调用常规保存。
主要区别是commit = False不会将更改推送到数据库中,但是会创建它所需的所有结构,但是稍后您将不得不触发常规保存,否则您的表单将不会保存在数据库。
例如:
form.save(commit=False)
另一个示例是您要手动处理多对多关系。
示例列表很长,但要简短一些,这是您在将模型保存到数据库之前需要执行中间步骤的时候。