Django形成的clean_data字段为None

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django形成的clean_data字段为None相关的知识,希望对你有一定的参考价值。

Django形成的clean_data字段为None。

该字段尚未通过验证。

我想更改此字段的值。

是否有其他方法来获取无效字段?

def clean(self):
    cleaned_data = super(Form, self).clean()

    print(cleaned_data.get('info')) <---- It is None

    return cleaned_data
答案

如果cleaning_data为None,则应该是因为您的现有表单字段尚未经过验证或其中没有数据。

你可以尝试这样的事情:

class Form1(forms.Form):
    # Your fields here

    def clean(self):
        if self.is_valid():    
             return super(forms.Form, self).clean() # Returns cleaned_data
        else:
             raise ValidationError(...)

编辑:注意@Alasdair所说的 - 以下方法更好:

您可以考虑事先更改'info'的值,即在视图中更改,而不是覆盖表单的clean()方法:

# In the view
data = request.POST.dict()
data['info'] = # your modifications here
form = Form1(data)
if form.is_valid():
     ... 

以上是关于Django形成的clean_data字段为None的主要内容,如果未能解决你的问题,请参考以下文章

clean_data 和普通数据有啥区别? - django

在 django 视图中将表单字段作为属性访问

Django - 添加字段以动态形成

自定义 django 表单字段渲染

Django:如何显示不特定于字段的验证错误?

Django Admin Cookbook-22如何将一对一关系添加为Admin内联字段