djangoプロジェクトでdjango-cripsy-formsを使い始めました。デフォルトでは、すべてのフォームのタグを印刷しないようにクリスピーにしたいと思います。フォームごとにヘルパーを作成し、helper.form_tag = Falseプロパティを設定できることを知っています。ただし、これは既存のすべてのフォームに対して行うのは面倒です。
デフォルトのクリスピー設定を上書きできるかどうか誰かが知っていますか?
djangoプロジェクトでdjango-cripsy-formsを使い始めました。デフォルトでは、すべてのフォームのタグを印刷しないようにクリスピーにしたいと思います。フォームごとにヘルパーを作成し、helper.form_tag = Falseプロパティを設定できることを知っています。ただし、これは既存のすべてのフォームに対して行うのは面倒です。
デフォルトのクリスピー設定を上書きできるかどうか誰かが知っていますか?
私も同じような状況にありました。私が思いついたのは、以下のようなビューのミックスインです。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
返品フォーム