gpt4 book ai didi

python - Django 覆盖模型 Clean() 与 Save()

转载 作者:IT老高 更新时间:2023-10-28 22:09:07 28 4
gpt4 key购买 nike

保存模型时,我有几个操作要执行,尤其是从管理员那里。我将几个字段大写并检查以确保一个字段或另一个字段已填写。我还创建了现场蛞蝓。现在,这些在覆盖 clean 和 save 函数之间是分开的。它现在有效,但我很好奇何时使用它们。我浏览了文档,但找不到具体何时使用。

最佳答案

您应该使用 clean 来完成与验证相关的工作,并解析/更改/以其他方式清理输入。大写字段和生成 slug 可能会发生在这里。我还使用 clean 将 post_type 之类的字段强制为代理模型中的特定值。如果你在 clean 中引发 django.core.exceptions.ValidationError('error text')'error text' 会被添加到 form.non_field_errors

保存是更改模型实际保存方式的地方。例如,我使用 save 来创建上传图片的裁剪。 ValidationError 如果在此处提出,则不会被捕获,我觉得这是两者之间最重要的实际区别。

关于python - Django 覆盖模型 Clean() 与 Save(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048108/

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