0

我已经开始在 django 项目中使用 django-cripsy-forms。默认情况下,我希望crispy 不为每个表单打印标签。我知道我可以为每个表单创建一个助手并设置helper.form_tag = False属性。然而,这对于所有现有的表格来说是很麻烦的。

有谁知道是否可以覆盖默认的脆皮设置?

4

1 回答 1

2

我发现自己处于类似的境地。我想出的是一个混合视图,如下所示。我仍然必须将此 mixin 添加到相关视图中,但我发现它比添加helper到所有表单中更好。至少我可以更改所有helper未定义表单的默认行为。

此方法仅适用于基于类的视图。如果您使用基于函数的视图,您可以通过添加一个prepare_form函数并在每次在视图中使用表单时调用它来完成类似的行为。

CrispyFormsMixin 类(对象):
    def get_form(自我,form_class):
        form = super(CrispyFormsMixin, self).get_form(form_class)
        # 为crispy_forms 添加一个默认助手
        如果不是 getattr(form, 'helper', None):
            form.helper = FormHelper()
            form.helper.form_tag = False
        退货表格

于 2012-12-11T13:10:25.433 回答