gpt4 book ai didi

python - django save(commit=False) 与 full_clean

转载 作者:行者123 更新时间:2023-12-01 04:35:06 25 4
gpt4 key购买 nike

我正在开发一个 django 项目,并通过批量上传表单创建许多模型实例。我正在创建许多未保存的模型实例,以便测试它们是否有错误,因为在用户提交完整的有效记录集之前我不想输入任何实例,以避免数据库中出现无意的重复。我的问题是是否有充分的理由在未保存的模型实例上使用 save(commit=False)full_clean 。我目前正在使用 full_clean,但不确定其中一种与另一种的区别/优点是什么。

最佳答案

调用 full_clean() 是验证模型实例的正确方法。

from django.core.exceptions import ValidationError

try:
obj.full_clean()
except ValidationError:
# handle invalid object

处理模型表单时,调用 is_valid() 将执行模型验证,因此您不必手动调用 full_clean()

使用 commit=False 调用 save() 不会执行模型验证。相反,它使您有机会在将对象保存到数据库之前更改该对象。一个常见的示例是将用户属性设置为当前登录的用户。

关于python - django save(commit=False) 与 full_clean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com