cleaned_data = super().clean()的做哟红
时间: 2024-01-21 21:04:00 浏览: 103
`cleaned_data = super().clean()`是在调用父类的`clean()`方法,以获取经过验证的表单数据。
在Django的`admin`中,每个模型都有一个对应的`ModelForm`类。当您在`admin`中创建或修改一个模型对象时,Django会使用该模型的`ModelForm`类来创建一个表单,以便您可以输入和修改字段的值。
`ModelForm`类有一个`clean()`方法,它会验证整个表单的值是否有效。如果表单的值无效,它将引发`ValidationError`异常。但是,如果您在子类的`clean()`方法中添加了自己的验证代码,那么您需要获取经过验证的表单数据。
因此,您可以使用`super().clean()`来调用父类的`clean()`方法,并获取经过验证的表单数据。这将确保您的自定义验证代码与父类的验证代码一起运行,并且可以获取经过验证的表单数据。
在`clean()`方法中,您可以使用`cleaned_data`变量来获取经过验证的表单数据。`cleaned_data`是一个包含所有经过验证的字段值的字典。例如,如果您的表单有一个`title`字段和一个`publication_date`字段,您可以使用以下代码来获取这些字段的值:
```python
class BookAdmin(admin.ModelAdmin):
def clean(self, request):
cleaned_data = super().clean()
title = cleaned_data.get('title')
publication_date = cleaned_data.get('publication_date')
# ...
```
希望这可以帮助您理解`cleaned_data = super().clean()`的作用。
阅读全文