是否有可能在django-crispy-forms中将helper.form_tag默认为False?

时间:2012-12-11 12:50:55

标签: django-crispy-forms

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

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

1 个答案:

答案 0 :(得分:2)

我发现自己处于类似情况。我想出的是一个mixin,用于下面这样的视图。我仍然需要将此mixin添加到相关视图中,但我发现它比向所有表单添加helper更好。至少我可以更改所有未定义helper的表单的默认行为。

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

class CrispyFormsMixin(object):
    def get_form(self, form_class):
        form = super(CrispyFormsMixin, self).get_form(form_class)
        # Add a default helper for crispy_forms
        if not getattr(form, 'helper', None):
            form.helper = FormHelper()
            form.helper.form_tag = False
        return form