Python 清洁在Django是什么意思?

Python 清洁在Django是什么意思?,python,django,django-forms,Python,Django,Django Forms,这对每个人来说都是一个显而易见的问题,但我不明白“干净”这个词是什么意思。我可以使用clean_数据,并在表单上使用表单验证。然而,我仍然不明白这意味着什么 为了使用验证,我是否始终需要使用中所述的关键字“clean”? 字段子类上的clean()方法负责运行 要运行_python()、validate()和_validators(),请按正确的顺序和 传播他们的错误。如果在任何时候,任何方法 ValidationError,验证将停止并引发该错误。这 方法返回干净的数据,然后将其插入 已清除表

这对每个人来说都是一个显而易见的问题,但我不明白“干净”这个词是什么意思。我可以使用clean_数据,并在表单上使用表单验证。然而,我仍然不明白这意味着什么

为了使用验证,我是否始终需要使用中所述的关键字“clean”?

字段子类上的clean()方法负责运行 要运行_python()、validate()和_validators(),请按正确的顺序和 传播他们的错误。如果在任何时候,任何方法 ValidationError,验证将停止并引发该错误。这 方法返回干净的数据,然后将其插入 已清除表单的\u数据字典

如中所述,Clean可防止数据库中的脏数据

字段子类上的clean()方法负责运行 要运行_python()、validate()和_validators(),请按正确的顺序和 传播他们的错误。如果在任何时候,任何方法 ValidationError,验证将停止并引发该错误。这 方法返回干净的数据,然后将其插入 已清除表单的\u数据字典


据我所知,Clean正在阻止DB中的脏数据。。所有隐式验证都使用Clean执行。。 当我们使用is_valid检查表单有效性时,将执行以下操作:

但是我们可以通过重写函数clean()来添加我们自己的验证: 我们要做的是调用super().clean(),这样所有隐式验证都由django定义的clean()完成,然后在必要时向其添加我们自己的验证

调用super().clean()时,它返回包含已清理数据的字典。。 您可以将其存储在变量中。。。
或者,据我所知,您可以使用self.cleaned_data访问字典。所有隐式验证都是使用clean执行的。。 当我们使用is_valid检查表单有效性时,将执行以下操作:

但是我们可以通过重写函数clean()来添加我们自己的验证: 我们要做的是调用super().clean(),这样所有隐式验证都由django定义的clean()完成,然后在必要时向其添加我们自己的验证

调用super().clean()时,它返回包含已清理数据的字典。。 您可以将其存储在变量中。。。
或者您可以使用self.cleaned_data访问字典。您是在说
clean_u()
?或者
clean()
?django中“clean”这个词本身指的是什么?为什么他们称之为清理?因为它正在清理数据并验证数据。如果表单上有一个主键字段,并将数据库中模型的ID发送给它,它将“清理”该字段并将其转换为模型实例。这是什么意思?谢谢你的帮助。也许本节将为你澄清一些事情:你是在谈论
clean\uuz()
?或者
clean()
?django中“clean”这个词本身指的是什么?为什么他们称之为清理?因为它正在清理数据并验证数据。如果表单上有一个主键字段,并将数据库中模型的ID发送给它,它将“清理”该字段并将其转换为模型实例。这是什么意思?感谢您的帮助。也许本节将为您澄清一些事情:我建议您在答案中添加一个示例:假设您有一个带有“名称”字段的产品模型,它需要是唯一的,在表单中,您需要清除该字段,使其全部为小写,并删除尾随空格,这样当用户输入一个全小写的“name”和一个第一个大写的“name”时,两个输入都被视为相同的,并且表单可以正确地引发异常(两个名称相同),因此前者不能被接受为有效输入(您需要为产品输入不同的名称。)我建议为答案添加一个示例:假设您有一个产品模型,它有“name”字段,并且需要是唯一的,在某种形式下,您需要清除该字段,使其全部为小写,并删除尾随空格,因此当用户输入一个“name”时,所有小写字母和一个第一个大写字母的“name”时,两个输入都被视为相同的,并且表单可以正确引发异常(两个名称相同),因此前者不能被接受为有效输入(您需要为产品输入不同的名称)