0

djangoプロジェクトでdjango-cripsy-formsを使い始めました。デフォルトでは、すべてのフォームのタグを印刷しないようにクリスピーにしたいと思います。フォームごとにヘルパーを作成し、helper.form_tag = Falseプロパティを設定できることを知っています。ただし、これは既存のすべてのフォームに対して行うのは面倒です。

デフォルトのクリスピー設定を上書きできるかどうか誰かが知っていますか?

4

1 に答える 1

2

私も同じような状況にありました。私が思いついたのは、以下のようなビューのミックスインです。helperそれでも、このミックスインを関連するビューに追加する必要がありますが、すべてのフォームに追加するよりも優れていることがわかりました。少なくとも、helper定義せずにすべてのフォームのデフォルトの動作を変更することができます。

このメソッドは、クラスベースのビューに対してのみ機能します。関数ベースのビューを使用する場合は、prepare_form関数を追加して、ビューでフォームを使用するたびにそれを呼び出すことで、同様の動作を実現できます。

クラスCrispyFormsMixin(object):
    def get_form(self、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 に答える