使用自定义`ErrorList`自定义传递给django表单错误的CSS类

ryoqjall  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(285)

我想在我的django项目中使用Bootstrap,因此总是将CSS类传递给每个表单错误。我们将其命名为“custom_class”。
我读了文档,它告诉我,理论上这个设置应该工作:

from django.forms.utils import ErrorList

class BootstrapErrorList(ErrorList):
    error_class = "custom_class"

class BaseForm(forms.BaseForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.error_class = BootstrapErrorList

class FormA(forms.ModelForm, BaseForm):
    # ...
class FormB(forms.Form, BaseForm):
    # ...

没有错误或任何东西,但“custom_class”也没有显示在渲染的html中。这就是我告诉自己的。我还检查了this未回答的“问题”。

2lpgd968

2lpgd9681#

经过几天的调整,我让它正常工作:

class BootstrapErrorList(ErrorList):
    def __init__(self, initlist=None, error_class=None, renderer=None):
        error_class = "alert alert-danger"
        super().__init__(initlist=initlist, error_class=error_class, renderer=renderer)

class BaseForm(forms.BaseForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.error_class = BootstrapErrorList

class FormA(forms.ModelForm, BaseForm):
    # ...
class FormB(forms.Form, BaseForm):
    # ...

这为每个从BaseForm继承的表单提供了css类“alert”和“alert-danger”。

相关问题