在保存模型时,我有几个操作要执行,尤其是从管理员那里.我将几个字段大写,并判断以确保其中一个字段或另一个字段已填充.我还创建了field slug.现在,它们被划分为覆盖clean和save函数.它现在可以工作了,但我很好奇什么时候使用它们.我查阅了这些文件,但找不到具体的使用方法.

推荐答案

您应该使用CLEAN来执行与验证相关的工作,并解析/更改/以其他方式清除输入.大写字段和生成插件可以在这里发生.我还使用CLEAN将类似post_type的字段强制为代理模型中的特定值.如果你把django.core.exceptions.ValidationError('error text')放在干净的里面,'error text'就加到form.non_field_errors上了.

保存是更改模型实际保存方式的位置.例如,我使用Save创建了一个上传图片的裁剪.ValidationError岁的人如果在这里长大就不会被抓到,我觉得这是两者最重要的实际区别.

Django相关问答推荐

Django、htmx删除记录并更新

其中实际的数据库提取在DRF list()中完成

为什么Docker compose没有这样的文件或目录?

如何在创建对象后立即运行一次代码?

当使用django-tinymce时,我在哪里指定referer?

在不指定查找的情况下调用 prefetch_lated() 有用吗?

DecimalField 验证错误,返回不正确的值 Django

Nginx 响应 404 not found on Django media URL in preprod, dev ok

包含资源时,DRF 返回我的软删除记录

Django-Registration:邮箱作为用户名

有没有办法将变量传递给 Django 中的 extended模板?

Django SMTPAuthenticationError

模型 Django 中的 ID 字段

Django 删除未使用的媒体文件

如何在 Django 和 django-jsonfield 中将 JSONField 的默认值设置为空列表?

Django Rest Framework - 缺少静态目录

import_module 的 Django 1.9 ImportError

PyCharm 代码判断提示找不到模板文件,如何解决?

Django模板转换为字符串

如何在 Django 中更改上传文件的文件名?