【问题标题】:Rendering required and error classes with Django Form Fields, in a custom template在自定义模板中使用 Django 表单字段呈现所需和错误类
【发布时间】:2011-07-17 09:26:17
【问题描述】:

我需要将 required 和 error 属性作为模板中字段的标记吐出的一部分。我知道这可以在自动生成布局时使用 form.as_p 等来完成。

然而,我的表单有一个复杂的 2 列布局。是否可以包含 required_css_class= 'required',它是表单类的一部分,同时为各个字段吐出 html?

我需要这样做,因为我想从生成的 html 驱动 jquery 验证,而不需要做很多额外的工作。

谢谢

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    required_css_class 似乎被forms.BoundField.css_classesforms.BaseForm._html_output 使用,这仅用于as_pas_table 等。

    它不是常规小部件渲染的一部分。

    您可以使用相同的 css_classes 方法返回您的元素的类,所以我认为最简单的解决方案是用一个元素包装 <input> 并给 that{{ field.css_classes }},然后修改您的验证选择器。


    或者,这是一种将错误类破解到错误字段中的方法:

        def __init__(self, *args, **kwargs):
            super(form, self).__init__(*args, **kwargs)
            for field in self.errors:
                if not field == '__all__': 
                    # errors dict can have key __all__ for non field errors.
                    self.fields[field].widget.attrs['class'] = \
                        self.fields[field].widget.attrs.get('class', '') + 'error'
    

    要使用required_css_class,您必须使用BoundField.css_classes 方法,这将涉及侵入基本形式__getitem____iter__,因为BoundField 是按需构建的。上面的方法比较简单。

    【讨论】:

    • 以上示例中的form指的是什么?
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2016-09-22
    • 2011-12-30
    • 2011-05-06
    • 2021-12-15
    • 2019-02-23
    相关资源
    最近更新 更多