Override ModelForm is_valid function

dnaranjo

I want to provide my forms with nicer feedback using CSS. I'm already doing it but it's just a clean code matter. I have many ModelForms and I want all of them to behave in the same way, so I thought there should be a way to avoid duplicating code for validation.

I have created a new class which overrides ModelForm

class ModelFormCSS(forms.ModelForm):
    def is_valid(self):
        # run the parent validation first
        valid = super(-->ParentModelForm<--, self).is_valid()

        if not valid:
            for f_name in self.errors:
                classes = self.fields[f_name].widget.attrs.get('class', '')
                if not "errors" in classes:
                    classes += ' errors'
                    self.fields[f_name].widget.attrs['class'] = classes
            return valid

        # all good
        return True

My problem lies in runing the parent validation since I don't know how to get the parent form... isn't there any way to get it from self?

Daniel Roseman

You've misunderstood how inheritance works in Python. In a super method, you must always call the current class:

valid = super(ModelFormCSS, self).is_valid()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

覆盖ModelForm is_valid函数

来自分类Dev

我表单的is_valid方法返回false

来自分类Dev

Django:is_valid和form_valid之间的区别

来自分类Dev

Backbone view override parent event function

来自分类Dev

Django 1.7 request.FILES'None'not validated(is_valid())

来自分类Dev

调用is_valid()方法后如何更改表单字段的值?

来自分类Dev

REST框架序列化程序始终为is_valid返回False

来自分类Dev

特定数据库中的Django模型形式is_valid()

来自分类Dev

Django 3:使用FileField和FloatField时,is_valid()始终为false

来自分类Dev

Django表单is_valid()缺少1个必需的位置参数:“ self”

来自分类Dev

Django形式is_valid在没有括号的情况下工作

来自分类Dev

Django自定义表单-__init__方法可用时is_valid不调用clean方法

来自分类Dev

即使所有字段都有值,django is_valid也会为模型形式返回false

来自分类Dev

即使所有字段都有值,django is_valid也会为模型形式返回false

来自分类Dev

当简单形式在Django 1.6中无效时,is_valid()引发异常

来自分类Dev

内联表单集is_valid错误:列表索引超出范围

来自分类Dev

使用ChoiceField和MultipleChoiceField的Django表单单元测试失败is_valid()

来自分类Dev

Django 表单发布没有错误的数据,但未注册为“is_valid”

来自分类Dev

如何修复 'AttributeError:'Person' 对象在 Django is_valid() 方法中没有属性 '_default_manager'

来自分类Dev

编码值形式.ModelForm

来自分类Dev

内联于ModelForm

来自分类Dev

Django ModelForm Imagefield上传

来自分类Dev

Django,保存ModelForm

来自分类Dev

Django:ModelForm验证无效

来自分类Dev

ModelForm视图未保存或

来自分类Dev

从ModelForm的FileField保存文件

来自分类Dev

modelForm实例未通过

来自分类Dev

如何从ModelForm保存数据?

来自分类Dev

Django ModelForm不保存

Related 相关文章

  1. 1

    覆盖ModelForm is_valid函数

  2. 2

    我表单的is_valid方法返回false

  3. 3

    Django:is_valid和form_valid之间的区别

  4. 4

    Backbone view override parent event function

  5. 5

    Django 1.7 request.FILES'None'not validated(is_valid())

  6. 6

    调用is_valid()方法后如何更改表单字段的值?

  7. 7

    REST框架序列化程序始终为is_valid返回False

  8. 8

    特定数据库中的Django模型形式is_valid()

  9. 9

    Django 3:使用FileField和FloatField时,is_valid()始终为false

  10. 10

    Django表单is_valid()缺少1个必需的位置参数:“ self”

  11. 11

    Django形式is_valid在没有括号的情况下工作

  12. 12

    Django自定义表单-__init__方法可用时is_valid不调用clean方法

  13. 13

    即使所有字段都有值,django is_valid也会为模型形式返回false

  14. 14

    即使所有字段都有值,django is_valid也会为模型形式返回false

  15. 15

    当简单形式在Django 1.6中无效时,is_valid()引发异常

  16. 16

    内联表单集is_valid错误:列表索引超出范围

  17. 17

    使用ChoiceField和MultipleChoiceField的Django表单单元测试失败is_valid()

  18. 18

    Django 表单发布没有错误的数据,但未注册为“is_valid”

  19. 19

    如何修复 'AttributeError:'Person' 对象在 Django is_valid() 方法中没有属性 '_default_manager'

  20. 20

    编码值形式.ModelForm

  21. 21

    内联于ModelForm

  22. 22

    Django ModelForm Imagefield上传

  23. 23

    Django,保存ModelForm

  24. 24

    Django:ModelForm验证无效

  25. 25

    ModelForm视图未保存或

  26. 26

    从ModelForm的FileField保存文件

  27. 27

    modelForm实例未通过

  28. 28

    如何从ModelForm保存数据?

  29. 29

    Django ModelForm不保存

热门标签

归档